Skip to content

Commit

Permalink
Merge pull request #21 from open-spaced-repetition/test
Browse files Browse the repository at this point in the history
  • Loading branch information
AlexErrant authored Apr 9, 2024
2 parents e5ab7c6 + 15c628a commit 1d41fbf
Show file tree
Hide file tree
Showing 12 changed files with 403 additions and 68 deletions.
53 changes: 52 additions & 1 deletion .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,9 +44,60 @@ jobs:
- name: Run checks
run: ./check.sh

- name: Build
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: lts/*

- uses: pnpm/action-setup@v3
name: Install pnpm
with:
version: 8
run_install: false
package_json_file: sandbox/package.json

- name: Get pnpm store directory
shell: bash
run: |
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
- uses: actions/cache@v4
name: Setup pnpm cache
with:
path: ${{ env.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: Install dependencies
working-directory: ./sandbox
run: pnpm install

- name: Install Playwright Browsers
working-directory: ./sandbox
run: pnpm exec playwright install --with-deps

- name: Build Dev
run: ./dev.sh

- name: Run Playwright dev tests
working-directory: ./sandbox
run: pnpm exec playwright test dev.spec.ts

- name: Build Prod
run: ./prod.sh

- name: Run Playwright prod tests
working-directory: ./sandbox
run: pnpm exec playwright test prod.spec.ts

- uses: actions/upload-artifact@v4
if: always()
with:
name: playwright-report
path: sandbox/playwright-report/
retention-days: 30

- name: Prepublish
run: ./prepublish.sh

Expand Down
53 changes: 52 additions & 1 deletion .github/workflows/pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,5 +44,56 @@ jobs:
- name: Run checks
run: ./check.sh

- name: Build
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: lts/*

- uses: pnpm/action-setup@v3
name: Install pnpm
with:
version: 8
run_install: false
package_json_file: sandbox/package.json

- name: Get pnpm store directory
shell: bash
run: |
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
- uses: actions/cache@v4
name: Setup pnpm cache
with:
path: ${{ env.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: Install dependencies
working-directory: ./sandbox
run: pnpm install

- name: Install Playwright Browsers
working-directory: ./sandbox
run: pnpm exec playwright install --with-deps

- name: Build Dev
run: ./dev.sh

- name: Run Playwright dev tests
working-directory: ./sandbox
run: pnpm exec playwright test dev.spec.ts

- name: Build Prod
run: ./prod.sh

- name: Run Playwright prod tests
working-directory: ./sandbox
run: pnpm exec playwright test prod.spec.ts

- uses: actions/upload-artifact@v4
if: always()
with:
name: playwright-report
path: sandbox/playwright-report/
retention-days: 30
4 changes: 4 additions & 0 deletions sandbox/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,7 @@ node_modules
dist
public
src/assets
/test-results/
/playwright-report/
/blob-report/
/playwright/.cache/
60 changes: 31 additions & 29 deletions sandbox/package.json
Original file line number Diff line number Diff line change
@@ -1,31 +1,33 @@
{
"name": "vite-template-solid",
"version": "0.0.0",
"description": "",
"scripts": {
"start": "vite",
"dev": "vite",
"build": "vite build",
"serve": "vite preview",
"postinstall": "./postinstall.sh"
},
"license": "MIT",
"devDependencies": {
"@types/papaparse": "^5.3.14",
"@types/sql.js": "^1.4.9",
"prettier": "^3.2.5",
"sass": "^1.72.0",
"solid-devtools": "^0.29.3",
"typescript": "^5.4.3",
"vite": "^5.2.7",
"vite-plugin-solid": "^2.10.2"
},
"dependencies": {
"@popperjs/core": "^2.11.8",
"bootstrap": "^5.3.3",
"fsrs-browser": "link:../pkg",
"papaparse": "^5.4.1",
"solid-js": "^1.8.16",
"sql.js": "^1.10.2"
}
"name": "vite-template-solid",
"version": "0.0.0",
"description": "",
"scripts": {
"start": "vite",
"dev": "vite",
"build": "vite build",
"serve": "vite preview",
"postinstall": "./postinstall.sh"
},
"license": "MIT",
"devDependencies": {
"@playwright/test": "^1.43.0",
"@types/node": "^20.12.4",
"@types/papaparse": "^5.3.14",
"@types/sql.js": "^1.4.9",
"prettier": "^3.2.5",
"sass": "^1.72.0",
"solid-devtools": "^0.29.3",
"typescript": "^5.4.3",
"vite": "^5.2.7",
"vite-plugin-solid": "^2.10.2"
},
"dependencies": {
"@popperjs/core": "^2.11.8",
"bootstrap": "^5.3.3",
"fsrs-browser": "link:../pkg",
"papaparse": "^5.4.1",
"solid-js": "^1.8.16",
"sql.js": "^1.10.2"
}
}
78 changes: 78 additions & 0 deletions sandbox/playwright.config.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
import { defineConfig, devices } from '@playwright/test'

/**
* Read environment variables from file.
* https://github.com/motdotla/dotenv
*/
// require('dotenv').config();

/**
* See https://playwright.dev/docs/test-configuration.
*/
export default defineConfig({
testDir: './tests',
/* Run tests in files in parallel */
fullyParallel: true,
/* Fail the build on CI if you accidentally left test.only in the source code. */
forbidOnly: !!process.env.CI,
/* Retry on CI only */
retries: process.env.CI ? 2 : 0,
/* Opt out of parallel tests on CI. */
workers: process.env.CI ? 1 : undefined,
/* Reporter to use. See https://playwright.dev/docs/test-reporters */
reporter: 'html',
/* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */
use: {
/* Base URL to use in actions like `await page.goto('/')`. */
// baseURL: 'http://127.0.0.1:3000',

/* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */
trace: 'on-first-retry',
},

/* Configure projects for major browsers */
projects: [
{
name: 'chromium',
use: { ...devices['Desktop Chrome'] },
},

{
name: 'firefox',
use: { ...devices['Desktop Firefox'] },
},

// https://github.com/RReverser/wasm-bindgen-rayon/blob/a947bdce8ef1e4b5456b349bd5b3763fe2516e25/test/playwright.config.mjs#L28
// {
// name: 'webkit',
// use: { ...devices['Desktop Safari'] },
// },

/* Test against mobile viewports. */
{
name: 'Mobile Chrome',
use: { ...devices['Pixel 5'] },
},
// {
// name: 'Mobile Safari',
// use: { ...devices['iPhone 12'] },
// },

/* Test against branded browsers. */
// {
// name: 'Microsoft Edge',
// use: { ...devices['Desktop Edge'], channel: 'msedge' },
// },
{
name: 'Google Chrome',
use: { ...devices['Desktop Chrome'], channel: 'chrome' },
},
],

/* Run your local dev server before starting the tests */
webServer: {
command: 'pnpm run start',
url: 'http://localhost:3000',
reuseExistingServer: !process.env.CI,
},
})
Loading

0 comments on commit 1d41fbf

Please sign in to comment.