From 6f9de40da695e5701104788e3216996b7950087d Mon Sep 17 00:00:00 2001 From: Sriram Viswanathan Date: Tue, 28 Mar 2017 14:48:45 -0300 Subject: [#931] Shows error feedback using Snackbar notification when there's a submit failure on backup account page --- .../backup_email/backup_email.spec.js | 27 ++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) (limited to 'web-ui/src/backup_account/backup_email/backup_email.spec.js') diff --git a/web-ui/src/backup_account/backup_email/backup_email.spec.js b/web-ui/src/backup_account/backup_email/backup_email.spec.js index 48199738..ce357bf7 100644 --- a/web-ui/src/backup_account/backup_email/backup_email.spec.js +++ b/web-ui/src/backup_account/backup_email/backup_email.spec.js @@ -84,7 +84,7 @@ describe('BackupEmail', () => { }); }); - describe('Submit', () => { + describe('Submit on success', () => { let preventDefaultSpy; beforeEach((done) => { @@ -118,8 +118,31 @@ describe('BackupEmail', () => { expect(preventDefaultSpy).toHaveBeenCalled(); }); - it('calls onSubmit from props when success', () => { + it('calls onSubmit from props with success', () => { expect(mockOnSubmit).toHaveBeenCalledWith('success'); }); }); + + describe('Submit on error', () => { + let preventDefaultSpy; + + beforeEach((done) => { + mockOnSubmit = expect.createSpy().andCall(() => done()); + preventDefaultSpy = expect.createSpy(); + expect.spyOn(browser, 'getCookie').andReturn('abc123'); + + backupEmail = shallow(); + + fetchMock.post('/backup-account', 500); + backupEmail.find('form').simulate('submit', { preventDefault: preventDefaultSpy }); + }); + + it('calls onSubmit from props with error', () => { + expect(mockOnSubmit).toHaveBeenCalledWith('error'); + }); + }); + + afterEach(() => { + fetchMock.restore(); + }); }); -- cgit v1.2.3 From e2bb2aa79d4198f6bfdb59ac5e708bfebf787646 Mon Sep 17 00:00:00 2001 From: Sriram Viswanathan Date: Wed, 29 Mar 2017 11:54:41 -0300 Subject: [#931] PR feedback - use 'response.ok' for testing 'fetch' errors & minor refactoring --- .../backup_email/backup_email.spec.js | 79 +++++++++++----------- 1 file changed, 39 insertions(+), 40 deletions(-) (limited to 'web-ui/src/backup_account/backup_email/backup_email.spec.js') diff --git a/web-ui/src/backup_account/backup_email/backup_email.spec.js b/web-ui/src/backup_account/backup_email/backup_email.spec.js index ce357bf7..65fad608 100644 --- a/web-ui/src/backup_account/backup_email/backup_email.spec.js +++ b/web-ui/src/backup_account/backup_email/backup_email.spec.js @@ -84,61 +84,60 @@ describe('BackupEmail', () => { }); }); - describe('Submit on success', () => { + describe('Submit', () => { let preventDefaultSpy; - beforeEach((done) => { - mockOnSubmit = expect.createSpy().andCall(() => done()); + beforeEach(() => { preventDefaultSpy = expect.createSpy(); - expect.spyOn(browser, 'getCookie').andReturn('abc123'); - - backupEmail = shallow(); - - fetchMock.post('/backup-account', 204); - backupEmail.find('form').simulate('submit', { preventDefault: preventDefaultSpy }); }); - it('posts backup email', () => { - expect(fetchMock.called('/backup-account')).toBe(true, 'Backup account POST was not called'); - }); + context('on success', () => { + beforeEach((done) => { + mockOnSubmit = expect.createSpy().andCall(() => done()); + expect.spyOn(browser, 'getCookie').andReturn('abc123'); - it('sends csrftoken as content', () => { - expect(fetchMock.lastOptions('/backup-account').body).toContain('"csrftoken":["abc123"]'); - }); + fetchMock.post('/backup-account', 204); + backupEmail = shallow(); + backupEmail.find('form').simulate('submit', { preventDefault: preventDefaultSpy }); + }); - it('sends content-type header', () => { - expect(fetchMock.lastOptions('/backup-account').headers['Content-Type']).toEqual('application/json'); - }); + it('posts backup email', () => { + expect(fetchMock.called('/backup-account')).toBe(true, 'Backup account POST was not called'); + }); - it('sends same origin headers', () => { - expect(fetchMock.lastOptions('/backup-account').credentials).toEqual('same-origin'); - }); + it('sends csrftoken as content', () => { + expect(fetchMock.lastOptions('/backup-account').body).toContain('"csrftoken":["abc123"]'); + }); - it('prevents default call to refresh page', () => { - expect(preventDefaultSpy).toHaveBeenCalled(); - }); + it('sends content-type header', () => { + expect(fetchMock.lastOptions('/backup-account').headers['Content-Type']).toEqual('application/json'); + }); - it('calls onSubmit from props with success', () => { - expect(mockOnSubmit).toHaveBeenCalledWith('success'); - }); - }); + it('sends same origin headers', () => { + expect(fetchMock.lastOptions('/backup-account').credentials).toEqual('same-origin'); + }); - describe('Submit on error', () => { - let preventDefaultSpy; + it('prevents default call to refresh page', () => { + expect(preventDefaultSpy).toHaveBeenCalled(); + }); - beforeEach((done) => { - mockOnSubmit = expect.createSpy().andCall(() => done()); - preventDefaultSpy = expect.createSpy(); - expect.spyOn(browser, 'getCookie').andReturn('abc123'); + it('calls onSubmit from props with success', () => { + expect(mockOnSubmit).toHaveBeenCalledWith('success'); + }); + }); - backupEmail = shallow(); + context('on error', () => { + beforeEach((done) => { + mockOnSubmit = expect.createSpy().andCall(() => done()); - fetchMock.post('/backup-account', 500); - backupEmail.find('form').simulate('submit', { preventDefault: preventDefaultSpy }); - }); + fetchMock.post('/backup-account', 500); + backupEmail = shallow(); + backupEmail.find('form').simulate('submit', { preventDefault: preventDefaultSpy }); + }); - it('calls onSubmit from props with error', () => { - expect(mockOnSubmit).toHaveBeenCalledWith('error'); + it('calls onSubmit from props with error', () => { + expect(mockOnSubmit).toHaveBeenCalledWith('error'); + }); }); }); -- cgit v1.2.3