From 787ee454ff6e3d0eabb789a9a37089c1f5db7842 Mon Sep 17 00:00:00 2001 From: Michael Shamoon <4887959+shamoon@users.noreply.github.com> Date: Wed, 23 Mar 2022 21:20:17 -0700 Subject: [PATCH] Mock some API methods in settings spec --- .../fixtures/settings/savedviews_saved.json | 1 - src-ui/cypress/integration/settings.spec.ts | 35 ++++++++++++++----- 2 files changed, 27 insertions(+), 9 deletions(-) delete mode 100644 src-ui/cypress/fixtures/settings/savedviews_saved.json diff --git a/src-ui/cypress/fixtures/settings/savedviews_saved.json b/src-ui/cypress/fixtures/settings/savedviews_saved.json deleted file mode 100644 index 486f0dd1d..000000000 --- a/src-ui/cypress/fixtures/settings/savedviews_saved.json +++ /dev/null @@ -1 +0,0 @@ -{"count":3,"next":null,"previous":null,"results":[{"id":1,"name":"Inbox","show_on_dashboard":false,"show_in_sidebar":false,"sort_field":"created","sort_reverse":true,"filter_rules":[{"rule_type":6,"value":"18"}]},{"id":2,"name":"Recently Added","show_on_dashboard":true,"show_in_sidebar":false,"sort_field":"created","sort_reverse":true,"filter_rules":[]},{"id":11,"name":"Taxes","show_on_dashboard":false,"show_in_sidebar":true,"sort_field":"created","sort_reverse":true,"filter_rules":[{"rule_type":6,"value":"39"}]}]} diff --git a/src-ui/cypress/integration/settings.spec.ts b/src-ui/cypress/integration/settings.spec.ts index d61d70b19..5e0d2b8ff 100644 --- a/src-ui/cypress/integration/settings.spec.ts +++ b/src-ui/cypress/integration/settings.spec.ts @@ -1,8 +1,33 @@ describe('settings', () => { beforeEach(() => { - cy.intercept('http://localhost:8000/api/saved_views/*', { - fixture: 'settings/savedviews.json', + this.modifiedViews = [] + + // mock API methods + cy.fixture('settings/savedviews.json').then((savedViewsJson) => { + // saved views PATCH + cy.intercept( + 'PATCH', + 'http://localhost:8000/api/saved_views/*', + (req) => { + this.modifiedViews.push(req.body) // store this for later + req.reply({ result: 'OK' }) + } + ) + + cy.intercept('GET', 'http://localhost:8000/api/saved_views/*', (req) => { + let response = { ...savedViewsJson } + if (this.modifiedViews.length) { + response.results = response.results.map((v) => { + if (this.modifiedViews.find((mv) => mv.id == v.id)) + v = this.modifiedViews.find((mv) => mv.id == v.id) + return v + }) + } + + req.reply(response) + }) }) + cy.viewport(1024, 1024) cy.visit('/settings') }) @@ -35,9 +60,6 @@ describe('settings', () => { it('should remove saved view from sidebar when unset', () => { cy.contains('a', 'Saved views').click() cy.get('#show_in_sidebar_1').click() - cy.intercept('http://localhost:8000/api/saved_views/*', { - fixture: 'settings/savedviews_saved.json', - }) cy.contains('button', 'Save').click() cy.contains('li', 'Inbox').should('not.exist') }) @@ -45,9 +67,6 @@ describe('settings', () => { it('should remove saved view from dashboard when unset', () => { cy.contains('a', 'Saved views').click() cy.get('#show_on_dashboard_1').click() - cy.intercept('http://localhost:8000/api/saved_views/*', { - fixture: 'settings/savedviews_saved.json', - }) cy.contains('button', 'Save').click() cy.visit('/dashboard') cy.get('app-saved-view-widget').contains('Inbox').should('not.exist')