Skip to content
This repository has been archived by the owner on Apr 3, 2024. It is now read-only.

Commit

Permalink
Augment tests for no-js
Browse files Browse the repository at this point in the history
  • Loading branch information
jorgelainfiesta committed Jul 10, 2018
1 parent 961ca7c commit 58cfd89
Show file tree
Hide file tree
Showing 4 changed files with 60 additions and 31 deletions.
4 changes: 4 additions & 0 deletions integration-tests/helpers/visit.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,10 @@ async function visit(route, options, callback) {
let browser = await puppeteer.launch({ args: ['--no-sandbox'] });
let page = await browser.newPage();

if (options.disableJavascript) {
page.setJavaScriptEnabled(false);
}

// make sure old service workers are gone…
await page._client.send('ServiceWorker.enable');
await page._client.send('ServiceWorker.stopAllWorkers');
Expand Down
23 changes: 23 additions & 0 deletions integration-tests/nojs-test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
const { expect } = require('chai');
const visit = require('./helpers/visit');

describe('the main flow without javascript', function() {
it('works', async function() {
await visit('/', { disableJavascript: false }, async (page) => {
await page.type('[data-test-search-input]', 'Salzburg');
await page.click('[data-test-search-submit]');
await page.waitForSelector('[data-test-search-result="Salzburg"]');

expect(page.url()).to.match(/\/search\/Salzburg$/);

await page.click('[data-test-search-result="Salzburg"] a');
await page.waitForSelector('[data-test-location]');

expect(page.url()).to.match(/\/location\/2$/);

let element = await page.waitForSelector('[data-test-measurement="PM10"] [data-test-measurement-value="15"]');

expect(element).to.be.ok;
});
});
});
44 changes: 33 additions & 11 deletions integration-tests/routes/search-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -89,19 +89,18 @@ describe('the search route', function() {
});
});

describe('with no js', function() {
it('redirects query param to url', async function() {
await visit('/search?search-term=Munich', async (page) => {
expect(page.url()).to.have.path('/search/Munich');
});
it('redirects query param to url', async function() {
await visit('/search?search-term=Munich', async (page) => {
expect(page.url()).to.have.path('/search/Munich');
});
it('redirects /search-by-coordinates', async function() {
await visit('/search-by-coordinates', async (page, $response) => {
expect(page.url()).to.have.path('/search/0,0');
});

let error = $response('[data-test-coordinates-error]');
expect(error).to.be.ok;
});
it('redirects /search-by-coordinates', async function() {
await visit('/search-by-coordinates', async (page, $response) => {
expect(page.url()).to.have.path('/search/0,0');

let error = $response('[data-test-coordinates-error]');
expect(error).to.be.ok;
});
});
});
Expand Down Expand Up @@ -227,4 +226,27 @@ describe('the search route', function() {
});
});
});

describe('without javascript', function() {
it('renders search results', async function() {
await visit('/search/Salzburg', { disableJavascript: true }, async(page, $response) => {

await page.waitForSelector('[data-test-search-result="Salzburg"]');
await page.click('[data-test-search-result="Salzburg"] a');
await page.waitForSelector('[data-test-location]');

expect(page.url()).to.have.path('/location/2');
});
});

it('allows searching', async function() {
await visit('/search/', { disableJavascript: true }, async(page, $response) => {
await page.type('[data-test-search-input]', 'Salzburg');
await page.click('[data-test-search-submit]');
await page.waitForSelector('[data-test-search-result="Salzburg"]');

expect(page.url()).to.have.path('/search/Salzburg');
});
});
});
});
20 changes: 0 additions & 20 deletions integration-tests/user-flow-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -39,24 +39,4 @@ describe('the main user flow', function() {
expect(element).to.be.ok;
});
});

it('works without JS', async function() {
await visit('/search/Salzburg', async (page) => {
await page.setJavaScriptEnabled(false);
await page.reload();
await page.waitForSelector('[data-test-search-result="Salzburg"]');
await page.click('[data-test-search-result="Salzburg"] a');
await page.waitForSelector('[data-test-location]');

expect(page.url()).to.match(/\/location\/2$/);

let element = await page.waitForSelector('[data-test-measurement="PM10"] [data-test-measurement-value="15"]');

expect(element).to.be.ok;

await page.click('[data-test-home-link]');

expect(page.url()).to.match(/\/$/);
});
});
});

0 comments on commit 58cfd89

Please sign in to comment.