Skip to content

Commit ae3d161

Browse files
Merge pull request #2493 from asfadmin/kim/playwright-geo-tests
Playwright geo tests
2 parents a67b7fd + 3796bd7 commit ae3d161

5 files changed

Lines changed: 200 additions & 0 deletions

File tree

e2e/geographic/aoi-parse.spec.ts

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,3 +28,59 @@ test('Area of interest should parse polygon coordinate strings', async ({
2828
'POLYGON((-53.26 64.81,-48.1 60.33,-42.58 59.93,-40.94 63.63,-37.18 65.91,-31.29 67.17,-26.02 68.68,-21.97 70.57,-18.28 75.06,-17.05 77.04,-19.78 78.79,-10.72 81.55,-20.83 82.4,-25.44 83.13,-31.82 83.63,-43.95 83.23,-61.17 81.84,-66.58 80.39,-66.2 79.47,-74.09 78.37,-69.26 76.12,-61.08 76.1,-54.71 72.83,-55.04 71.55,-53.26 64.81))',
2929
);
3030
});
31+
32+
test('Manual Entry Cases, (Self-Intersecting, clear, valid)', async ({
33+
page,
34+
}) => {
35+
await page.goto('/');
36+
await page.getByRole('button', { name: 'Filters', exact: true }).click();
37+
38+
await page
39+
.getByRole('region', { name: 'Area of Interest Options' })
40+
.getByLabel('Area of Interest • WKT')
41+
.fill(
42+
'POLYGON((-114.4775 55.628,-95.2734 54.5721,-114.0381 41.1456,-97.251 41.1125,-114.4775 55.628))',
43+
);
44+
await page.keyboard.press('Tab');
45+
await expect(page.locator('#mat-button-toggle-6-button')).toHaveText(
46+
'NO RESULTS',
47+
);
48+
49+
await page.getByRole('button', { name: 'Clear', exact: true }).click();
50+
let value = await page
51+
.getByLabel('Area of Interest Options')
52+
.getByLabel('Area of Interest • WKT')
53+
.inputValue();
54+
await expect(value).toBe('');
55+
await page
56+
.getByRole('region', { name: 'Area of Interest Options' })
57+
.getByLabel('Area of Interest • WKT')
58+
.fill(
59+
'POLYGON((-148.8144 64.3268,-146.5039 64.3268,-146.5039 65.2329,-148.8144 65.2329,-148.8144 64.3268))',
60+
);
61+
62+
await page.getByRole('combobox', { name: 'Search for a location' }).click();
63+
value = await page
64+
.getByLabel('Area of Interest Options')
65+
.getByLabel('Area of Interest • WKT')
66+
.inputValue();
67+
await expect(value).toBe(
68+
'POLYGON((-148.8144 64.3268,-146.5039 64.3268,-146.5039 65.2329,-148.8144 65.2329,-148.8144 64.3268))',
69+
);
70+
});
71+
72+
test('Invalid Manual Entry', async ({ page }) => {
73+
await page.goto('/');
74+
await page.getByRole('button', { name: 'Filters', exact: true }).click();
75+
await page
76+
.getByRole('region', { name: 'Area of Interest Options' })
77+
.getByLabel('Area of Interest • WKT')
78+
.fill('-122.255 38.959,-97.470 13.239');
79+
80+
await page.getByRole('combobox', { name: 'Search for a location' }).click();
81+
const value = await page
82+
.getByLabel('Area of Interest Options')
83+
.getByLabel('Area of Interest • WKT')
84+
.inputValue();
85+
await expect(value).toBe('');
86+
});
Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
import { test, expect } from '@playwright/test';
2+
3+
test('Set Start and End Date', async ({ page }) => {
4+
await page.goto('/');
5+
await page.getByRole('button', { name: 'Filters', exact: true }).click();
6+
await page
7+
.locator('mat-form-field')
8+
.filter({ hasText: 'Start DateMM/DD/YYYY' })
9+
.getByLabel('Open calendar')
10+
.nth(1)
11+
.click();
12+
await page.getByRole('button', { name: '2015' }).click();
13+
await page.getByRole('button', { name: '1/1/2015', exact: true }).click();
14+
await page.getByRole('button', { name: '/1/2015' }).click();
15+
await page
16+
.locator('mat-form-field')
17+
.filter({ hasText: 'End DateMM/DD/YYYY' })
18+
.getByLabel('Open calendar')
19+
.nth(1)
20+
.click();
21+
await page.getByRole('button', { name: '2015' }).click();
22+
await page.getByRole('button', { name: '1/1/2015', exact: true }).click();
23+
await page.getByRole('button', { name: '/31/2015' }).click();
24+
await expect(
25+
page.getByRole('textbox', { name: 'Start Date' }).first(),
26+
).toHaveValue('1/1/2015');
27+
await expect(
28+
page.getByRole('textbox', { name: 'End Date' }).first(),
29+
).toHaveValue('1/31/2015');
30+
});
31+
32+
test('Clamp End Date to Start', async ({ page }) => {
33+
await page.goto('/');
34+
await page.getByRole('button', { name: 'Filters', exact: true }).click();
35+
await page
36+
.locator('mat-form-field')
37+
.filter({ hasText: 'Start DateMM/DD/YYYY' })
38+
.getByLabel('Open calendar')
39+
.nth(1)
40+
.click();
41+
await page.getByRole('button', { name: '2015' }).click();
42+
await page.getByRole('button', { name: '1/1/2015', exact: true }).click();
43+
await page.getByRole('button', { name: '/31/2015' }).click();
44+
await page
45+
.locator('mat-form-field')
46+
.filter({ hasText: 'End DateMM/DD/YYYY' })
47+
.getByLabel('Open calendar')
48+
.nth(1)
49+
.click();
50+
await page.getByRole('button', { name: '2015' }).click();
51+
await page.getByRole('button', { name: '1/1/2015', exact: true }).click();
52+
await page.getByRole('button', { name: '/1/2015' }).click();
53+
await expect(
54+
page.getByRole('textbox', { name: 'Start Date' }).first(),
55+
).toHaveValue('1/1/2015');
56+
await expect(
57+
page.getByRole('textbox', { name: 'End Date' }).first(),
58+
).toHaveValue('1/1/2015');
59+
});
60+
61+
test('Invalid Dates', async ({ page }) => {
62+
await page.goto('/');
63+
await page
64+
.getByRole('textbox', { name: 'Start Date' })
65+
.first()
66+
.fill('1/1/2000');
67+
await page.keyboard.press('Tab');
68+
await expect(
69+
page.getByRole('textbox', { name: 'Start Date' }).first(),
70+
).toHaveValue('');
71+
72+
await page
73+
.getByRole('textbox', { name: 'End Date' })
74+
.first()
75+
.fill('1/1/3000');
76+
await page.keyboard.press('Tab');
77+
await expect(
78+
page.getByRole('textbox', { name: 'End Date' }).first(),
79+
).toHaveValue('');
80+
81+
await page
82+
.getByRole('textbox', { name: 'Start Date' })
83+
.first()
84+
.fill('invalid date');
85+
await page.keyboard.press('Tab');
86+
await expect(
87+
page.getByRole('textbox', { name: 'Start Date' }).first(),
88+
).toHaveValue('');
89+
await page
90+
.getByRole('textbox', { name: 'Start Date' })
91+
.first()
92+
.fill('01012025');
93+
await page.keyboard.press('Tab');
94+
await expect(
95+
page.getByRole('textbox', { name: 'Start Date' }).first(),
96+
).toHaveValue('');
97+
await page.getByRole('textbox', { name: 'Start Date' }).first().fill('*&^*');
98+
await page.keyboard.press('Tab');
99+
await expect(
100+
page.getByRole('textbox', { name: 'Start Date' }).first(),
101+
).toHaveValue('');
102+
});

e2e/geographic/file-type.spec.ts

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
import { test, expect } from '@playwright/test';
2+
3+
test('File Type Select Multiple', async ({ page }) => {
4+
await page.goto('/');
5+
await page.getByRole('button', { name: 'Filters', exact: true }).click();
6+
await page
7+
.locator('div')
8+
.filter({ hasText: /^File Type$/ })
9+
.first()
10+
.click();
11+
await page.getByText('(SLC)').first().click();
12+
await page.getByText('(GRD-HD)').first().click();
13+
await page.locator('.cdk-overlay-backdrop').click();
14+
await expect(page.locator('app-info-bar')).toContainText(
15+
'File Types: GRD_HD,SLC',
16+
);
17+
});

e2e/geographic/seasonal.spec.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import { test, expect } from '@playwright/test';
2+
3+
test('test', async ({ page }) => {
4+
await page.goto('/');
5+
await page.getByRole('button', { name: 'Filters', exact: true }).click();
6+
await page.getByRole('switch', { name: 'Seasonal Search' }).click();
7+
await page.getByRole('button', { name: '+' }).first().click();
8+
await page.getByRole('button', { name: '+' }).first().click();
9+
await page.getByRole('button', { name: '-' }).nth(2).click();
10+
await page.getByRole('button', { name: '-' }).nth(2).click();
11+
await page.getByRole('button', { name: '-' }).nth(2).click();
12+
await expect(page.locator('app-info-bar')).toContainText('Season: 3 - 177');
13+
});

e2e/geographic/subtypes.spec.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import { test, expect } from '@playwright/test';
2+
3+
test('Sentinel Satellite Filter', async ({ page }) => {
4+
await page.goto('/');
5+
await page.getByRole('button', { name: 'Filters', exact: true }).click();
6+
await page.locator('#mat-select-value-3').click();
7+
await page
8+
.getByRole('option', { name: 'SC' })
9+
.locator('mat-pseudo-checkbox')
10+
.click();
11+
await expect(page.locator('app-info-bar')).toContainText('Dataset: SC');
12+
});

0 commit comments

Comments
 (0)