mirror of
https://github.com/danny-avila/LibreChat.git
synced 2025-12-22 03:10:15 +01:00
Merge pull request #164 from danny-avila/workflow
ci(playwright.yml): add Playwright tests workflow
This commit is contained in:
commit
e1c6517b8f
4 changed files with 77 additions and 5 deletions
72
.github/workflows/playwright.yml
vendored
Normal file
72
.github/workflows/playwright.yml
vendored
Normal file
|
|
@ -0,0 +1,72 @@
|
||||||
|
name: Playwright Tests
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [ main ]
|
||||||
|
pull_request:
|
||||||
|
branches: [ main ]
|
||||||
|
jobs:
|
||||||
|
tests_e2e:
|
||||||
|
name: Run end-to-end tests
|
||||||
|
timeout-minutes: 60
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
env:
|
||||||
|
BINGAI_TOKEN: ${{ secrets.BINGAI_TOKEN }}
|
||||||
|
CHATGPT_TOKEN: ${{ secrets.CHATGPT_TOKEN }}
|
||||||
|
MONGO_URI: ${{ secrets.MONGO_URI }}
|
||||||
|
OPENAI_KEY: ${{ secrets.OPENAI_KEY }}
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
- uses: actions/setup-node@v3
|
||||||
|
with:
|
||||||
|
node-version: 18
|
||||||
|
cache: 'npm'
|
||||||
|
|
||||||
|
- name: Cache API dependencies
|
||||||
|
uses: actions/cache@v2
|
||||||
|
with:
|
||||||
|
path: ./api/node_modules
|
||||||
|
key: api-${{ runner.os }}-node-${{ hashFiles('./api/package-lock.json') }}
|
||||||
|
restore-keys: |
|
||||||
|
api-${{ runner.os }}-node-
|
||||||
|
|
||||||
|
- name: Install API dependencies
|
||||||
|
working-directory: ./api
|
||||||
|
run: npm ci
|
||||||
|
|
||||||
|
- name: Cache Client dependencies
|
||||||
|
uses: actions/cache@v2
|
||||||
|
with:
|
||||||
|
path: ./client/node_modules
|
||||||
|
key: client-${{ runner.os }}-node-${{ hashFiles('./client/package-lock.json') }}
|
||||||
|
restore-keys: |
|
||||||
|
client-${{ runner.os }}-node-
|
||||||
|
|
||||||
|
- name: Install Client dependencies
|
||||||
|
working-directory: ./client
|
||||||
|
run: npm ci
|
||||||
|
|
||||||
|
- name: Build Client
|
||||||
|
working-directory: ./client
|
||||||
|
run: npm run build
|
||||||
|
|
||||||
|
- name: Install global dependencies
|
||||||
|
run: npm ci
|
||||||
|
|
||||||
|
- name: Install Playwright Browsers
|
||||||
|
run: npx playwright install --with-deps
|
||||||
|
|
||||||
|
- name: Start API server
|
||||||
|
working-directory: ./api
|
||||||
|
run: |
|
||||||
|
npm run start &
|
||||||
|
sleep 10 # Wait for the server to start
|
||||||
|
|
||||||
|
- name: Run Playwright tests
|
||||||
|
run: npx playwright test
|
||||||
|
|
||||||
|
- uses: actions/upload-artifact@v3
|
||||||
|
if: always()
|
||||||
|
with:
|
||||||
|
name: playwright-report
|
||||||
|
path: e2e/playwright-report/
|
||||||
|
retention-days: 30
|
||||||
|
|
@ -32,7 +32,7 @@ export default function Landing() {
|
||||||
return (
|
return (
|
||||||
<div className="flex h-full flex-col items-center overflow-y-auto pt-0 text-sm dark:bg-gray-800">
|
<div className="flex h-full flex-col items-center overflow-y-auto pt-0 text-sm dark:bg-gray-800">
|
||||||
<div className="w-full px-6 text-gray-800 dark:text-gray-100 md:flex md:max-w-2xl md:flex-col lg:max-w-3xl">
|
<div className="w-full px-6 text-gray-800 dark:text-gray-100 md:flex md:max-w-2xl md:flex-col lg:max-w-3xl">
|
||||||
<h1 className="mt-6 ml-auto mr-auto mb-10 flex items-center justify-center gap-2 text-center text-4xl font-semibold sm:mb-16 md:mt-[10vh]">
|
<h1 id="landing-title" className="mt-6 ml-auto mr-auto mb-10 flex items-center justify-center gap-2 text-center text-4xl font-semibold sm:mb-16 md:mt-[10vh]">
|
||||||
ChatGPT Clone
|
ChatGPT Clone
|
||||||
</h1>
|
</h1>
|
||||||
<div className="items-start gap-3.5 text-center md:flex">
|
<div className="items-start gap-3.5 text-center md:flex">
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@ export default defineConfig({
|
||||||
],
|
],
|
||||||
/* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */
|
/* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */
|
||||||
use: {
|
use: {
|
||||||
baseURL: 'http:/localhost:3080',
|
baseURL: 'http://localhost:3080',
|
||||||
video: 'on-first-retry',
|
video: 'on-first-retry',
|
||||||
trace: 'retain-on-failure',
|
trace: 'retain-on-failure',
|
||||||
headless: true,
|
headless: true,
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
import {expect, test} from '@playwright/test';
|
import {expect, test} from '@playwright/test';
|
||||||
|
|
||||||
test('landing page', async ({page}) => {
|
test('landing page', async ({page}) => {
|
||||||
await page.goto('/');
|
await page.goto('http://localhost:3080/');
|
||||||
expect (await page.title()).toBe('ChatGPT Clone');
|
// expect (await page.title()).toBe('ChatGPT Clone');
|
||||||
expect (await page.textContent('h1')).toBe('ChatGPT Clone');
|
expect (await page.textContent('#landing-title')).toBe('ChatGPT Clone');
|
||||||
});
|
});
|
||||||
Loading…
Add table
Add a link
Reference in a new issue