e2ed
Version:
E2E testing framework over Playwright
58 lines (45 loc) • 1.75 kB
text/typescript
import {test} from 'autotests';
import {step} from 'e2ed';
import {waitForTimeout} from 'e2ed/actions';
import {LogEventType} from 'e2ed/constants';
import {assertFunctionThrows, log} from 'e2ed/utils';
test('step(...) function works correctly', {meta: {testId: '23'}}, async () => {
const timeout = 30;
const timeoutAddition = 10;
await step('First step', (): undefined => {});
await step('Step level 1', async () => {
await step('Step level 2');
await step('Skipped step level 2', () => {}, {skipLogs: true});
log('Some log on level 2', {payload: 18});
await step('Step level 2 with children', async () => {
await step('Step level 3 with action type', () => {}, {
payload: {initialPayload: 10},
timeout: 10,
type: LogEventType.Action,
});
await step('Step level 3', async () => {
await step('Step level 4');
await assertFunctionThrows(async () => {
await step(
'Failed step with timeout',
async () => {
await waitForTimeout(timeout + timeoutAddition);
await step('Also failed step', () => {
throw new Error('This step should be torn out of the tree');
});
},
{runPlaywrightStep: true, timeout},
);
}, 'step body throws an error on timeout end');
await step(
'Step level 4 with running playwright step',
() => ({finalPayload: 40, initialPayload: 30}),
{payload: {initialPayload: 20}, runPlaywrightStep: true},
);
log('Some log on level 4');
});
log('Some log on level 3', {level: 3});
});
log('Also some log on level 2', {level: 2});
});
});