37 lines
1.1 KiB
JavaScript
37 lines
1.1 KiB
JavaScript
import { test, expect } from '@playwright/test';
|
|
|
|
test('API keeps declarative preset request fields', async ({ page }) => {
|
|
let capturedBody = null;
|
|
await page.route('**/echo', async route => {
|
|
capturedBody = route.request().postData();
|
|
await route.fulfill({
|
|
status: 200,
|
|
contentType: 'application/json',
|
|
body: JSON.stringify({ ok: true })
|
|
});
|
|
});
|
|
|
|
await page.goto('/test/api_test.html');
|
|
await page.waitForFunction(() => typeof globalThis.presetApi?.do === 'function' && !!globalThis.presetApi?.request);
|
|
|
|
const requestInfo = await page.evaluate(() => ({
|
|
url: presetApi.request?.url,
|
|
method: presetApi.request?.method,
|
|
secret: presetApi.request?.data?.secret
|
|
}));
|
|
|
|
expect(requestInfo).toEqual({
|
|
url: '/echo',
|
|
method: 'POST',
|
|
secret: 'playwright-secret'
|
|
});
|
|
|
|
const ok = await page.evaluate(async () => {
|
|
const resp = await presetApi.do({ noui: true });
|
|
return resp.ok;
|
|
});
|
|
|
|
expect(ok).toBe(true);
|
|
expect(capturedBody).toBe(JSON.stringify({ secret: 'playwright-secret' }));
|
|
});
|