Spaces:
Sleeping
Sleeping
File size: 1,305 Bytes
fb8fccc | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | const { test, expect } = require('playwright/test');
const transparentPng = Buffer.from(
'iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8/x8AAwMCAO+/p9sAAAAASUVORK5CYII=',
'base64',
);
test.beforeEach(async ({ page }) => {
await page.route('https://*.tile.openstreetmap.org/**', (route) => route.fulfill({
status: 200,
contentType: 'image/png',
body: transparentPng,
}));
});
function collectBrowserErrors(page) {
const errors = [];
page.on('pageerror', (error) => errors.push(error.message));
page.on('console', (message) => {
if (message.type() === 'error') errors.push(message.text());
});
return errors;
}
test('starts a retained road-network solve and returns control to the user', async ({ page }) => {
const errors = collectBrowserErrors(page);
await page.goto('/');
await page.locator('button').filter({ hasText: 'Solve' }).first().click();
await expect(page.locator('#sf-app')).toHaveAttribute('data-job-id', /.+/, { timeout: 10_000 });
const stopButton = page.locator('button').filter({ hasText: 'Stop' }).first();
if (await stopButton.isVisible()) {
await stopButton.click();
}
await expect(page.locator('button').filter({ hasText: 'Solve' }).first()).toBeVisible({ timeout: 15_000 });
expect(errors).toEqual([]);
});
|