aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthew Somerville <matthew@mysociety.org>2019-10-14 14:03:44 +0100
committerMatthew Somerville <matthew@mysociety.org>2019-10-15 09:55:29 +0100
commit6a55d13ba170a49bff5cde04d800ded9c68c74a3 (patch)
treeee68e21a88091ce6330b03e1e1113dc4a315e21d
parent171da27bfdd0858c11f064a6aea78c93a0d5b78e (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.js53
-rw-r--r--.cypress/cypress/integration/regressions.js34
-rw-r--r--templates/web/base/common_scripts.html2
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')
);