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_account/backup_email/backup_email.js | 2 +- .../backup_email/backup_email.spec.js | 79 +++++++++++----------- web-ui/src/backup_account/page.js | 2 +- 3 files changed, 41 insertions(+), 42 deletions(-) (limited to 'web-ui') diff --git a/web-ui/src/backup_account/backup_email/backup_email.js b/web-ui/src/backup_account/backup_email/backup_email.js index 6eeadee8..7e6cb66c 100644 --- a/web-ui/src/backup_account/backup_email/backup_email.js +++ b/web-ui/src/backup_account/backup_email/backup_email.js @@ -55,7 +55,7 @@ export class BackupEmail extends React.Component { csrftoken: [browser.getCookie('XSRF-TOKEN')] }) }).then((response) => { - if (response.status === 204) { + if (response.ok) { this.props.onSubmit('success'); } else { this.props.onSubmit('error'); 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'); + }); }); }); diff --git a/web-ui/src/backup_account/page.js b/web-ui/src/backup_account/page.js index d5f64add..be3bae36 100644 --- a/web-ui/src/backup_account/page.js +++ b/web-ui/src/backup_account/page.js @@ -48,7 +48,7 @@ export class Page extends React.Component { if (this.state.status === 'error') { return ; } - return undefined; + return undefined; // To satisfy eslint error - consistent-return }; render() { -- cgit v1.2.3