openreplay/frontend/app/components/Session_/UnitStepsModal/utils.ts
Delirium ee46413b13
Events for E2E testing (#3081)
* ui: change export event ui, add rightblock panel

* ui: add timeline select checkbox

* ui: keep selected framework in localstorage

* ui: on timeline => on the timeline
2025-03-03 16:36:42 +01:00

40 lines
No EOL
1.9 KiB
TypeScript

import { Click, Input, Location, TYPES } from "App/types/session/event";
export const puppeteerEvents = {
[TYPES.LOCATION]: (event: Location) => `await page.goto('${event.url}')`,
[TYPES.CLICK]: (event: Click) =>
`await page.locator('${
event.selector.length ? event.selector : event.label
}').click()`,
[TYPES.INPUT]: (event: Input) =>
`await page.locator('${event.label}').type('Test Input')`,
screen: (width: number, height: number) =>
`await page.setViewport({width: ${width}, height: ${height})`,
testIntro: (pageTitle: string, firstUrl: string) => `describe('${pageTitle}', () => {\n it('Navigates through ${firstUrl}', async () => {`,
testOutro: () => ` })\n})`,
};
export const cypressEvents = {
[TYPES.LOCATION]: (event: Location) => `cy.visit('${event.url}')`,
[TYPES.CLICK]: (event: Click) =>
`cy.get('${
event.selector.length ? event.selector : event.label
}').click()`,
[TYPES.INPUT]: (event: Input) =>
`cy.get('${event.label}').type('Test Input')`,
screen: (width: number, height: number) => `cy.viewport(${width}, ${height})`,
testIntro: (pageTitle: string, firstUrl: string) => `describe('${pageTitle}', () => {\n it('Navigates through ${firstUrl}', () => {`,
testOutro: () => ` })\n})`,
};
export const playWrightEvents = {
[TYPES.LOCATION]: (event: Location) => `await page.goto('${event.url}')`,
[TYPES.CLICK]: (event: Click) =>
event.selector.length
? `await page.locator('${event.selector}').click()`
: `await page.getByText('${event.label}').click()`,
[TYPES.INPUT]: (event: Input) =>
`await page.getByLabel('${event.label}').fill('Test Input')`,
screen: (width: number, height: number) =>
`await page.setViewport({width: ${width}, height: ${height})`,
testIntro: (pageTitle: string, firstUrl: string) => `test.describe('${pageTitle}', () => {\n test('Navigates through ${firstUrl}', async () => {`,
testOutro: () => ` })\n})`,
};