-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
14 changed files
with
342 additions
and
83 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -114,3 +114,4 @@ dist | |
/playwright/.cache/ | ||
/*-snapshots/ | ||
*.png | ||
test-results.json |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
import type { | ||
FullConfig, FullResult, Reporter, Suite, TestCase, TestResult | ||
} from '@playwright/test/reporter'; | ||
|
||
class MyReporter implements Reporter { | ||
onBegin(config: FullConfig, suite: Suite) { | ||
console.log(`Starting the run with ${suite.allTests().length} tests`); | ||
} | ||
|
||
onTestBegin(test: TestCase, result: TestResult) { | ||
console.log(`Starting test ${test.title}`); | ||
} | ||
|
||
onTestEnd(test: TestCase, result: TestResult) { | ||
console.log(`Finished test ${test.title}: ${result.status}`); | ||
} | ||
|
||
onEnd(result: FullResult) { | ||
console.log(`Finished the run: ${result.status}`); | ||
} | ||
} | ||
|
||
export default MyReporter; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
import { test, expect } from '@playwright/test'; | ||
|
||
test(`should have $350 in account`, async ({ page }) => { | ||
await page.goto('https://demo.applitools.com/'); | ||
await page.getByPlaceholder('Enter your username').click(); | ||
await page.getByPlaceholder('Enter your username').fill('user'); | ||
await page.getByPlaceholder('Enter your password').click(); | ||
await page.getByPlaceholder('Enter your password').fill('password'); | ||
await page.getByRole('link', { name: 'Sign in' }).click(); | ||
await page.locator('.os-icon').first().click(); | ||
await page.getByRole('link', { name: ' Make Payment' }).click(); | ||
await page.getByRole('link', { name: ' Add Account' }).click(); | ||
await page.locator('.avatar-w > img').first().click(); | ||
await page.locator('.menu-w > .logged-user-w > .logged-user-i > .avatar-w > img').click(); | ||
await page.locator('.logged-user-toggler-arrow > .os-icon').click(); | ||
await page.getByRole('link', { name: ' Credit cards' }).click(); | ||
await page.getByRole('link', { name: ' Debit cards' }).click(); | ||
await page.getByRole('link', { name: ' Loans' }).click(); | ||
await page.getByRole('link', { name: ' Mortgages' }).click(); | ||
await page.getByRole('link', { name: 'View Statement ' }).click(); | ||
await expect(page.locator('body')).toContainText('$350'); | ||
await page.locator('.logged-user-w').first().click(); | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
54 changes: 54 additions & 0 deletions
54
tests/playwright-course-exercises/test-playwright-exercise0.spec.ts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
import { test, expect } from '@playwright/test'; | ||
|
||
test('login-demo - exercise 0', async({page}) => { | ||
// Generate random username to avoid conflicts and assert that the user is logged in | ||
|
||
await page.goto('http://localhost:8090/'); | ||
await page.getByRole('link', { name: 'Register' }).click(); | ||
|
||
await page.locator('#firstName').fill('A'); | ||
|
||
await page.locator('#Text1').fill('A'); // Replace with better selector | ||
|
||
await page.getByLabel('First name').fill('A'); | ||
await page.getByLabel('Password').fill('A'); | ||
await page.getByRole('button', { name: 'Register' }).click(); | ||
|
||
await expect(page.locator('body')).toContainText('Registration successful'); // Replace with better selector | ||
await page.getByLabel('Username').fill('A'); | ||
await page.getByLabel('Password').fill('A'); | ||
await page.getByRole('button', { name: 'Login' }).click(); | ||
|
||
await expect(page.locator('h1')).toContainText('Hi A!'); | ||
await page.getByRole('link', { name: 'Logout' }).click(); | ||
}); | ||
|
||
test('login-demo - solution 0', async({page}) => { | ||
// Generate random username to avoid conflicts and assert that the user is logged in | ||
|
||
await page.goto('http://localhost:8090/'); | ||
await page.getByRole('link', { name: 'Register' }).click(); | ||
await page.locator('#firstName').click(); | ||
await page.locator('#firstName').fill('A'); | ||
|
||
// Replace with better selector | ||
await page.locator('#Text1').click(); | ||
await page.locator('#Text1').fill('A'); | ||
|
||
await page.getByLabel('First name').click(); | ||
await page.getByLabel('First name').fill('A'); | ||
await page.getByLabel('Password').click(); | ||
await page.getByLabel('Password').fill('A'); | ||
await page.getByRole('button', { name: 'Register' }).click(); | ||
|
||
// Replace with better selector | ||
await expect(page.locator('body')).toContainText('Registration successful'); | ||
await page.getByLabel('Username').click(); | ||
await page.getByLabel('Username').fill('A'); | ||
await page.getByLabel('Password').click(); | ||
await page.getByLabel('Password').fill('A'); | ||
await page.getByRole('button', { name: 'Login' }).click(); | ||
|
||
await expect(page.locator('h1')).toContainText('Hi A!'); | ||
await page.getByRole('link', { name: 'Logout' }).click(); | ||
}); |
49 changes: 49 additions & 0 deletions
49
tests/playwright-course-exercises/test-ts-exercise0.spec.ts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
import { test, expect } from '@playwright/test'; | ||
|
||
|
||
test('getting Pokemon types - Promise', async ({ request }) => { | ||
request.get('https://pokeapi.co/api/v2/type') | ||
.then((response) => { | ||
console.log("Response result: " + response.ok()) | ||
response.json().then((json) => { | ||
console.log("About to print the json"); | ||
console.log(json); | ||
const count = json.results.length; | ||
console.log("Number of results" + count); | ||
expect(count).toBe(20); | ||
}); | ||
}) | ||
.catch((error) => {console.log(error)}); | ||
|
||
// We need to wait for the promise to resolve | ||
await new Promise(r => setTimeout(r, 2000)); | ||
}); | ||
|
||
test("getting Pokemon types - await" , async({request}) =>{ | ||
const response = await request.get('https://pokeapi.co/api/v2/type') | ||
const json = await response.json(); | ||
console.log(json); | ||
const count = json.results.length; | ||
expect(count).toBe(20); | ||
}); | ||
|
||
export class PokemonType { | ||
|
||
constructor(private name: string,private url: string) { | ||
} | ||
|
||
public toString() { | ||
return "PokemonType: " + this.name + " " + this.url; | ||
} | ||
} | ||
|
||
test("getting Pokemon types - store in list" , async({request}) =>{ | ||
const response = await request.get('https://pokeapi.co/api/v2/type') | ||
const json = await response.json(); | ||
let poks: Array<PokemonType> = []; | ||
for (let i in json.results) { | ||
let pType = new PokemonType(json.results[i].name, json.results[i].url); | ||
poks.push(pType); | ||
} | ||
console.log(poks); | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
const { test } = require('@playwright/test'); | ||
class MyService { | ||
|
||
async init() { | ||
console.log('init'); | ||
} | ||
|
||
async perform() { | ||
console.log('perform'); | ||
} | ||
|
||
async dispose() { | ||
console.log('dispose'); | ||
} | ||
|
||
|
||
} | ||
|
||
|
||
test.describe('traditional way', () => { | ||
let service: MyService | ||
test.beforeEach(async ({ }) => { | ||
service = new MyService(); | ||
service.init(); | ||
}); | ||
|
||
test.afterEach(async () => { | ||
service.dispose(); | ||
}); | ||
|
||
test('should use service', async () => { | ||
service.perform(); | ||
}); | ||
|
||
}); |
Oops, something went wrong.