Skip to content

Commit

Permalink
test: update tests
Browse files Browse the repository at this point in the history
  • Loading branch information
aldeed authored and jperl committed Sep 21, 2020
1 parent a948953 commit f2d9332
Show file tree
Hide file tree
Showing 5 changed files with 59 additions and 38 deletions.
26 changes: 26 additions & 0 deletions test/.qawolf/example.test.ts
@@ -0,0 +1,26 @@
import { Browser, Page } from 'playwright';
import qawolf from 'qawolf';
import { connect } from '../browser';
import { TEST_URL } from '../utils';

let browser: Browser;
let page: Page;

beforeAll(async () => {
browser = await connect();
const context = await browser.newContext();
await qawolf.register(context);
page = await context.newPage();
const targetId = (page as any)._delegate._targetId;
console.log(`targetId="${targetId}"`);
});

afterAll(async () => {
await qawolf.stopVideos();
await browser.close();
});

test("example", async () => {
await page.goto(`${TEST_URL}infinite-scroll`);
await qawolf.create();
});
48 changes: 19 additions & 29 deletions test/build-code/__snapshots__/buildTemplate.test.ts.snap
@@ -1,12 +1,12 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP

exports[`buildImports imports when typescript 1`] = `
"import { Browser, Page } from \\"playwright\\";
"import { Browser, BrowserContext } from \\"playwright\\";
import qawolf from \\"qawolf\\";"
`;

exports[`buildImports imports when typescript 2`] = `
"import { Browser, Page, devices } from \\"playwright\\";
"import { Browser, BrowserContext, devices } from \\"playwright\\";
import qawolf from \\"qawolf\\";
const device = devices[\\"iPhone 11\\"];"
`;
Expand All @@ -23,13 +23,12 @@ exports[`buildTemplate builds test template 1`] = `
"const qawolf = require(\\"qawolf\\");
let browser;
let page;
let context;
beforeAll(async () => {
browser = await qawolf.launch();
const context = await browser.newContext();
context = await browser.newContext();
await qawolf.register(context);
page = await context.newPage();
});
afterAll(async () => {
Expand All @@ -38,8 +37,7 @@ afterAll(async () => {
});
test(\\"myName\\", async () => {
await page.goto(\\"www.qawolf.com\\");
await qawolf.create();
await qawolf.create(\\"www.qawolf.com\\");
});"
`;

Expand All @@ -49,13 +47,12 @@ const qawolf = require(\\"qawolf\\");
const device = devices[\\"iPhone 11\\"];
let browser;
let page;
let context;
beforeAll(async () => {
browser = await qawolf.launch();
const context = await browser.newContext({ ...device });
context = await browser.newContext({ ...device });
await qawolf.register(context);
page = await context.newPage();
});
afterAll(async () => {
Expand All @@ -64,22 +61,20 @@ afterAll(async () => {
});
test(\\"myName\\", async () => {
await page.goto(\\"www.qawolf.com\\");
await qawolf.create();
await qawolf.create(\\"www.qawolf.com\\");
});"
`;

exports[`buildTemplate builds test template 3`] = `
"const qawolf = require(\\"qawolf\\");
let browser;
let page;
let context;
beforeAll(async () => {
browser = await qawolf.launch();
const context = await browser.newContext();
context = await browser.newContext();
await qawolf.register(context);
page = await context.newPage();
});
afterAll(async () => {
Expand All @@ -88,24 +83,22 @@ afterAll(async () => {
});
test(\\"myName\\", async () => {
await page.goto(\\"www.qawolf.com\\");
await qawolf.setState(page, \\"admin.json\\");
await qawolf.create();
await qawolf.create(\\"www.qawolf.com\\");
});"
`;

exports[`buildTemplate builds test template 4`] = `
"import { Browser, Page } from \\"playwright\\";
"import { Browser, BrowserContext } from \\"playwright\\";
import qawolf from \\"qawolf\\";
let browser: Browser;
let page: Page;
let context: BrowserContext;
beforeAll(async () => {
browser = await qawolf.launch();
const context = await browser.newContext();
context = await browser.newContext();
await qawolf.register(context);
page = await context.newPage();
});
afterAll(async () => {
Expand All @@ -114,24 +107,22 @@ afterAll(async () => {
});
test(\\"myName\\", async () => {
await page.goto(\\"www.qawolf.com\\");
await qawolf.create();
await qawolf.create(\\"www.qawolf.com\\");
});"
`;

exports[`buildTemplate builds test template 5`] = `
"import { Browser, Page, devices } from \\"playwright\\";
"import { Browser, BrowserContext, devices } from \\"playwright\\";
import qawolf from \\"qawolf\\";
const device = devices[\\"iPhone 7\\"];
let browser: Browser;
let page: Page;
let context: BrowserContext;
beforeAll(async () => {
browser = await qawolf.launch();
const context = await browser.newContext({ ...device });
context = await browser.newContext({ ...device });
await qawolf.register(context);
page = await context.newPage();
});
afterAll(async () => {
Expand All @@ -140,7 +131,6 @@ afterAll(async () => {
});
test(\\"myName\\", async () => {
await page.goto(\\"www.qawolf.com\\");
await qawolf.create();
await qawolf.create(\\"www.qawolf.com\\");
});"
`;
12 changes: 6 additions & 6 deletions test/build-workflow/buildClickSteps.test.ts
Expand Up @@ -17,30 +17,30 @@ describe('buildClickSteps', () => {

it('builds one click per group of mousedown/click events', () => {
const steps = buildClickSteps(events.login);
expect(steps.map((step) => step.event.selector)).toMatchSnapshot();
expect(steps.map((step) => (step.event as ElementEvent).selector)).toMatchSnapshot();
});

it('groups [mousedown, change, click] sequence together', () => {
const steps = buildClickSteps(events.searchGoogle);
expect(steps.map((step) => step.event.selector)).toMatchSnapshot();
expect(steps.map((step) => (step.event as ElementEvent).selector)).toMatchSnapshot();
});

it('prefers clicks on inputs', () => {
const steps = buildClickSteps(events.radioInputs);
expect(steps.map((step) => step.event.selector)).toMatchSnapshot();
expect(steps.map((step) => (step.event as ElementEvent).selector)).toMatchSnapshot();
});

it('skips click triggered by Enter', () => {
const steps = buildClickSteps(events.login);

// click on login link
expect(steps[0].event.target.attrs.href).toEqual('/login');
expect((steps[0].event as ElementEvent).target.attrs.href).toEqual('/login');

// click on initial input
expect(steps[1].event.selector).toEqual('#username');
expect((steps[1].event as ElementEvent).selector).toEqual('#username');

// click logout
expect(steps[2].event.selector).toEqual('text=Log out');
expect((steps[2].event as ElementEvent).selector).toEqual('text=Log out');
});

it('skips click on select', () => {
Expand Down
2 changes: 2 additions & 0 deletions test/create-code/__snapshots__/CodeFileUpdater.test.ts.snap
Expand Up @@ -2,6 +2,7 @@

exports[`CodeFileUpdater update saves code with new steps 1`] = `
" someCode();
const page = await qawolf.waitForPage(context, 0, { waitUntil: \\"domcontentloaded\\" });
await page.click(\\"text=Log in\\");
await page.click(\\"#username\\");
// 🐺 create code here
Expand All @@ -10,6 +11,7 @@ exports[`CodeFileUpdater update saves code with new steps 1`] = `

exports[`CodeFileUpdater update saves code with new steps 2`] = `
" someCode();
const page = await qawolf.waitForPage(context, 0, { waitUntil: \\"domcontentloaded\\" });
await page.click(\\"text=Log in\\");
await page.click(\\"#username\\");
await page.fill(\\"#username\\", \\"tomsmith\\");
Expand Down
9 changes: 6 additions & 3 deletions test/create-code/__snapshots__/CodeReconciler.test.ts.snap
@@ -1,16 +1,19 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP

exports[`CodeReconciler.reconcile inserts new expressions 1`] = `
"await page.click(\\"text=Log in\\");
"const page = await qawolf.waitForPage(context, 0, { waitUntil: \\"domcontentloaded\\" });
await page.click(\\"text=Log in\\");
// 🐺 create code here"
`;

exports[`CodeReconciler.reconcile updates the last expression 1`] = `
"await page.click(\\"#username\\");
"const page = await qawolf.waitForPage(context, 0, { waitUntil: \\"domcontentloaded\\" });
await page.click(\\"#username\\");
"
`;

exports[`CodeReconciler.reconcile updates the last expression after a step was removed (ex: paste) 1`] = `
"await page.click(\\"#username\\");
"const page = await qawolf.waitForPage(context, 0, { waitUntil: \\"domcontentloaded\\" });
await page.click(\\"#username\\");
"
`;

0 comments on commit f2d9332

Please sign in to comment.