diff options
author | Matthew Somerville <matthew@mysociety.org> | 2019-10-14 14:03:44 +0100 |
---|---|---|
committer | Matthew Somerville <matthew@mysociety.org> | 2019-10-15 09:55:29 +0100 |
commit | 6a55d13ba170a49bff5cde04d800ded9c68c74a3 (patch) | |
tree | ee68e21a88091ce6330b03e1e1113dc4a315e21d | |
parent | 171da27bfdd0858c11f064a6aea78c93a0d5b78e (diff) |
Fix issue loading duplicates when not to be shown.
If the duplicates.js file is loaded, then its mechanisms come into play,
and it fetches duplicates and hides the reporting form if there are any.
So we only want this to happen in the same situations as it being loaded
elsewhere, on a relevant cobrand and not just after signing in.
-rw-r--r-- | .cypress/cypress/integration/duplicates.js | 53 | ||||
-rw-r--r-- | .cypress/cypress/integration/regressions.js | 34 | ||||
-rw-r--r-- | templates/web/base/common_scripts.html | 2 |
3 files changed, 54 insertions, 35 deletions
diff --git a/.cypress/cypress/integration/duplicates.js b/.cypress/cypress/integration/duplicates.js new file mode 100644 index 000000000..988a6a602 --- /dev/null +++ b/.cypress/cypress/integration/duplicates.js @@ -0,0 +1,53 @@ +describe('Duplicate tests', function() { + it('does not try and fetch duplicates which will not get shown', function() { + cy.server(); + cy.route('/report/new/ajax*').as('report-ajax'); + cy.request({ + method: 'POST', + url: '/auth?r=/', + form: true, + body: { username: 'admin@example.org', password_sign_in: 'password' } + }); + cy.visit('http://fixmystreet.localhost:3001/report/1'); + cy.contains('Report another problem here').click(); + cy.wait('@report-ajax'); + cy.get('[id=category_group]').select('Potholes'); + cy.wait(500); + cy.get('[name=title').should('be.visible'); + }); + + it('hides everything when duplicate suggestions are shown', function() { + cy.server(); + cy.route('/report/new/ajax*').as('report-ajax'); + cy.visit('http://borsetshire.localhost:3001/_test/setup/regression-duplicate-hide'); // Server-side setup + cy.visit('http://borsetshire.localhost:3001/report/1'); + cy.contains('Report another problem here').click(); + cy.wait('@report-ajax'); + cy.get('[id=category_group]').select('Licensing'); + cy.get('[id=subcategory_Licensing]').select('Skips'); + cy.get('.extra-category-questions').should('not.be.visible'); + cy.visit('http://borsetshire.localhost:3001/_test/teardown/regression-duplicate-hide'); + }); + + it('does not show duplicate suggestions when signing in during reporting', function() { + cy.server(); + cy.route('/report/new/ajax*').as('report-ajax'); + cy.route('/around/nearby*').as('nearby-ajax'); + cy.visit('http://borsetshire.localhost:3001/report/1'); + cy.contains('Report another problem here').click(); + cy.wait('@report-ajax'); + cy.get('[id=category_group]').select('Potholes'); + cy.wait('@nearby-ajax'); + cy.get('.js-hide-duplicate-suggestions:first').should('be.visible').click(); + cy.get('[name=title]').type('Title'); + cy.get('[name=detail]').type('Detail'); + cy.get('.js-new-report-user-show').click(); + cy.get('.js-new-report-show-sign-in').should('be.visible').click(); + cy.get('#form_username_sign_in').type('user@example.org'); + cy.get('[name=password_sign_in]').type('password'); + cy.get('[name=password_sign_in]').parents('form').submit(); + cy.get('#map_sidebar').should('contain', 'check and confirm your details'); + cy.get('#js-duplicate-reports').should('not.exist'); + }); + +}); diff --git a/.cypress/cypress/integration/regressions.js b/.cypress/cypress/integration/regressions.js index 73f6900a6..f9fedc3eb 100644 --- a/.cypress/cypress/integration/regressions.js +++ b/.cypress/cypress/integration/regressions.js @@ -92,38 +92,4 @@ describe('Regression tests', function() { cy.get('#form_start_date').should('have.value', '2019-01-01'); }); - it('hides everything when duplicate suggestions are shown', function() { - cy.server(); - cy.route('/report/new/ajax*').as('report-ajax'); - cy.visit('http://borsetshire.localhost:3001/_test/setup/regression-duplicate-hide'); // Server-side setup - cy.visit('http://borsetshire.localhost:3001/report/1'); - cy.contains('Report another problem here').click(); - cy.wait('@report-ajax'); - cy.get('[id=category_group]').select('Licensing'); - cy.get('[id=subcategory_Licensing]').select('Skips'); - cy.get('.extra-category-questions').should('not.be.visible'); - cy.visit('http://borsetshire.localhost:3001/_test/teardown/regression-duplicate-hide'); - }); - - it('does not show duplicate suggestions when signing in during reporting', function() { - cy.server(); - cy.route('/report/new/ajax*').as('report-ajax'); - cy.route('/around/nearby*').as('nearby-ajax'); - cy.visit('http://borsetshire.localhost:3001/report/1'); - cy.contains('Report another problem here').click(); - cy.wait('@report-ajax'); - cy.get('[id=category_group]').select('Potholes'); - cy.wait('@nearby-ajax'); - cy.get('.js-hide-duplicate-suggestions:first').should('be.visible').click(); - cy.get('[name=title]').type('Title'); - cy.get('[name=detail]').type('Detail'); - cy.get('.js-new-report-user-show').click(); - cy.get('.js-new-report-show-sign-in').should('be.visible').click(); - cy.get('#form_username_sign_in').type('user@example.org'); - cy.get('[name=password_sign_in]').type('password'); - cy.get('[name=password_sign_in]').parents('form').submit(); - cy.get('#map_sidebar').should('contain', 'check and confirm your details'); - cy.get('#js-duplicate-reports').should('not.exist'); - }); - }); diff --git a/templates/web/base/common_scripts.html b/templates/web/base/common_scripts.html index 56b2e6d2e..7df8feaa0 100644 --- a/templates/web/base/common_scripts.html +++ b/templates/web/base/common_scripts.html @@ -39,7 +39,7 @@ IF c.user_exists AND (c.user.from_body OR c.user.is_superuser); version('/jslib/jquery-1.7.2.min.js'), version('/cobrands/fixmystreet/staff.js') ); - IF bodyclass.match('mappage'); + IF bodyclass.match('mappage') AND c.cobrand.suggest_duplicates AND NOT login_success AND NOT oauth_need_email; scripts.push( version('/js/duplicates.js') ); |