mirror of
https://github.com/whoisclebs/lodash.git
synced 2026-01-29 06:27:49 +00:00
ci: add pipeline to run tests on browsers (#6021)
This commit is contained in:
39
.github/workflows/browser-testing.yml
vendored
Normal file
39
.github/workflows/browser-testing.yml
vendored
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
name: CI Browsers
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [ main ]
|
||||||
|
pull_request:
|
||||||
|
# Run on every PR, regardless of branch
|
||||||
|
branches: [ '*' ]
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
test-docs:
|
||||||
|
name: Modern Browsers Test
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Install Node
|
||||||
|
uses: actions/setup-node@v4
|
||||||
|
with:
|
||||||
|
node-version: '24'
|
||||||
|
|
||||||
|
- name: Install dependencies
|
||||||
|
run: |
|
||||||
|
npm install
|
||||||
|
npx playwright install --with-deps
|
||||||
|
npm install -D @playwright/test@latest
|
||||||
|
|
||||||
|
- name: Build project
|
||||||
|
run: npm run build
|
||||||
|
|
||||||
|
- name: Start server
|
||||||
|
run: |
|
||||||
|
npx http-server -p 9001 &
|
||||||
|
sleep 2
|
||||||
|
|
||||||
|
- name: Run Playwright tests
|
||||||
|
run: npx playwright test
|
||||||
28
playwright.config.js
Normal file
28
playwright.config.js
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
const { devices } = require('@playwright/test');
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
retries: 0,
|
||||||
|
testDir: './test',
|
||||||
|
testMatch: '**/*.spec.js',
|
||||||
|
use: {
|
||||||
|
baseURL: 'http://localhost:9001',
|
||||||
|
headless: true,
|
||||||
|
},
|
||||||
|
projects: [
|
||||||
|
{ name: 'Chromium', use: { browserName: 'chromium' } },
|
||||||
|
{ name: 'Firefox', use: { browserName: 'firefox' } },
|
||||||
|
{ name: 'WebKit', use: { browserName: 'webkit' } },
|
||||||
|
{
|
||||||
|
name: 'Microsoft Edge',
|
||||||
|
use: { browserName: 'chromium', channel: 'msedge' },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Mobile Safari',
|
||||||
|
use: { ...devices['iPhone 12'], browserName: 'webkit' },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Mobile Chrome',
|
||||||
|
use: { ...devices['Pixel 5'], browserName: 'chromium' },
|
||||||
|
},
|
||||||
|
],
|
||||||
|
};
|
||||||
23
test/playwright-runner.spec.js
Normal file
23
test/playwright-runner.spec.js
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
const { test, expect } = require('@playwright/test');
|
||||||
|
|
||||||
|
test.describe.configure({ mode: 'parallel' });
|
||||||
|
|
||||||
|
test('index', async ({ page }) => {
|
||||||
|
await page.goto('http://localhost:9001/test/index.html');
|
||||||
|
await expect(page.locator('text=0 failed')).toBeVisible({ timeout: 60000 });
|
||||||
|
});
|
||||||
|
|
||||||
|
test('fp', async ({ page }) => {
|
||||||
|
await page.goto('http://localhost:9001/test/fp.html');
|
||||||
|
await expect(page.locator('text=0 failed')).toBeVisible({ timeout: 60000 });
|
||||||
|
});
|
||||||
|
|
||||||
|
test('backbone', async ({ page }) => {
|
||||||
|
await page.goto('http://localhost:9001/test/backbone.html');
|
||||||
|
await expect(page.locator('text=0 failed')).toBeVisible({ timeout: 60000 });
|
||||||
|
});
|
||||||
|
|
||||||
|
test('underscore', async ({ page }) => {
|
||||||
|
await page.goto('http://localhost:9001/test/underscore.html');
|
||||||
|
await expect(page.locator('text=0 failed')).toBeVisible({ timeout: 60000 });
|
||||||
|
});
|
||||||
Reference in New Issue
Block a user