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