1 import assert from 'assert';
3 const reverse_only = !!process.env.REVERSE_ONLY;
5 describe('Reverse Page', function () {
8 describe('No search', function () {
9 before(async function () {
10 page = await browser.newPage();
11 await page.goto('http://localhost:9999/reverse.html');
14 after(async function () {
18 it('should allow switching coordinates', async function () {
19 let lat_handle = await page.$('input[name=lat]');
20 let lon_handle = await page.$('input[name=lon]');
22 assert.equal(await lat_handle.evaluate(node => node.value), '');
23 assert.equal(await lon_handle.evaluate(node => node.value), '');
25 await page.click('#switch-coords');
27 assert.equal(await lat_handle.evaluate(node => node.value), '');
28 assert.equal(await lon_handle.evaluate(node => node.value), '');
30 await page.type('input[name=lat]', '5');
31 await page.type('input[name=lon]', '10');
32 await page.click('#switch-coords');
34 assert.equal(await lat_handle.evaluate(node => node.value), 10);
35 assert.equal(await lon_handle.evaluate(node => node.value), 5);
39 describe('With search', function () {
40 before(async function () {
41 page = await browser.newPage();
42 await page.goto('http://localhost:9999/reverse.html');
43 await page.type('input[name=lat]', '27.1750090510034');
44 await page.type('input[name=lon]', '78.04209025');
45 await page.click('button[type=submit]');
46 await page.waitForSelector('#searchresults');
49 after(async function () {
53 it('should return single result', async function () {
54 let results_count = await page.$$eval('#searchresults .result', elements => elements.length);
56 assert.deepStrictEqual(results_count, 1);
59 it('should display a map', async function () {
60 await page.waitForSelector('#map');
61 assert.equal((await page.$$('#map')).length, 1);
64 it('should redirect to details page on clicking details button', async function () {
66 let results = await page.$$('#searchresults .result a');
68 await results[0].click();
69 await page.waitForSelector('table#address');
71 current_url = new URL(await page.url());
72 assert.deepStrictEqual(current_url.pathname, '/details.html');
77 it('should clear results when switching to search page', async function () {
78 await page.click('nav a[href="search.html"]');
81 await page.$$eval('#searchresults .result', elements => elements.length);
83 assert.deepStrictEqual(results_count, 0);