ci: do not build core in e2e test (#3882)
This commit is contained in:
4
.github/actions/setup-node/action.yml
vendored
4
.github/actions/setup-node/action.yml
vendored
@@ -121,3 +121,7 @@ runs:
|
|||||||
- name: Build Infra
|
- name: Build Infra
|
||||||
shell: bash
|
shell: bash
|
||||||
run: yarn run build:infra
|
run: yarn run build:infra
|
||||||
|
|
||||||
|
- name: Build Plugins
|
||||||
|
shell: bash
|
||||||
|
run: yarn run build:plugins
|
||||||
|
|||||||
116
.github/workflows/build.yml
vendored
116
.github/workflows/build.yml
vendored
@@ -134,26 +134,6 @@ jobs:
|
|||||||
path: ./apps/storybook/storybook-static
|
path: ./apps/storybook/storybook-static
|
||||||
if-no-files-found: error
|
if-no-files-found: error
|
||||||
|
|
||||||
build-core:
|
|
||||||
name: Build @affine/core
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
environment: development
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v3
|
|
||||||
- name: Setup Node.js
|
|
||||||
uses: ./.github/actions/setup-node
|
|
||||||
- name: Build Plugins
|
|
||||||
run: yarn run build:plugins
|
|
||||||
- name: Build Core
|
|
||||||
run: yarn nx build @affine/core
|
|
||||||
- name: Upload core artifact
|
|
||||||
uses: actions/upload-artifact@v3
|
|
||||||
with:
|
|
||||||
name: core
|
|
||||||
path: ./apps/core/dist
|
|
||||||
if-no-files-found: error
|
|
||||||
|
|
||||||
build-storage:
|
build-storage:
|
||||||
name: Build Storage
|
name: Build Storage
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
@@ -240,7 +220,6 @@ jobs:
|
|||||||
name: E2E Plugin Test
|
name: E2E Plugin Test
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
environment: development
|
environment: development
|
||||||
needs: build-core
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
- name: Setup Node.js
|
- name: Setup Node.js
|
||||||
@@ -248,11 +227,6 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
playwright-install: true
|
playwright-install: true
|
||||||
electron-install: false
|
electron-install: false
|
||||||
- name: Download core artifact
|
|
||||||
uses: actions/download-artifact@v3
|
|
||||||
with:
|
|
||||||
name: core
|
|
||||||
path: ./apps/core/dist
|
|
||||||
- name: Run playwright tests
|
- name: Run playwright tests
|
||||||
run: yarn e2e --forbid-only
|
run: yarn e2e --forbid-only
|
||||||
working-directory: tests/affine-plugin
|
working-directory: tests/affine-plugin
|
||||||
@@ -329,8 +303,6 @@ jobs:
|
|||||||
matrix:
|
matrix:
|
||||||
shard: [1, 2, 3, 4, 5]
|
shard: [1, 2, 3, 4, 5]
|
||||||
environment: development
|
environment: development
|
||||||
needs: build-core
|
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
- name: Setup Node.js
|
- name: Setup Node.js
|
||||||
@@ -338,11 +310,6 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
playwright-install: true
|
playwright-install: true
|
||||||
electron-install: false
|
electron-install: false
|
||||||
- name: Download core artifact
|
|
||||||
uses: actions/download-artifact@v3
|
|
||||||
with:
|
|
||||||
name: core
|
|
||||||
path: ./apps/core/dist
|
|
||||||
|
|
||||||
- name: Run playwright tests
|
- name: Run playwright tests
|
||||||
run: yarn e2e --forbid-only --shard=${{ matrix.shard }}/${{ strategy.job-total }}
|
run: yarn e2e --forbid-only --shard=${{ matrix.shard }}/${{ strategy.job-total }}
|
||||||
@@ -374,7 +341,6 @@ jobs:
|
|||||||
name: E2E Migration Test
|
name: E2E Migration Test
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
environment: development
|
environment: development
|
||||||
needs: build-core
|
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
spec:
|
spec:
|
||||||
@@ -388,12 +354,6 @@ jobs:
|
|||||||
playwright-install: true
|
playwright-install: true
|
||||||
electron-install: false
|
electron-install: false
|
||||||
|
|
||||||
- name: Download core artifact
|
|
||||||
uses: actions/download-artifact@v3
|
|
||||||
with:
|
|
||||||
name: core
|
|
||||||
path: ./apps/core/dist
|
|
||||||
|
|
||||||
- name: Unzip
|
- name: Unzip
|
||||||
run: yarn unzip
|
run: yarn unzip
|
||||||
working-directory: ./tests/affine-legacy/${{ matrix.spec.package }}
|
working-directory: ./tests/affine-legacy/${{ matrix.spec.package }}
|
||||||
@@ -432,79 +392,3 @@ jobs:
|
|||||||
flags: unittest
|
flags: unittest
|
||||||
name: affine
|
name: affine
|
||||||
fail_ci_if_error: false
|
fail_ci_if_error: false
|
||||||
|
|
||||||
build-docker:
|
|
||||||
if: github.ref == 'refs/heads/master'
|
|
||||||
name: Build Docker
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
needs:
|
|
||||||
- build-server
|
|
||||||
- build-core
|
|
||||||
- build-storage
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v3
|
|
||||||
- name: Download core artifact
|
|
||||||
uses: actions/download-artifact@v3
|
|
||||||
with:
|
|
||||||
name: core
|
|
||||||
path: ./apps/core/dist
|
|
||||||
- name: Download server dist
|
|
||||||
uses: actions/download-artifact@v3
|
|
||||||
with:
|
|
||||||
name: server-dist
|
|
||||||
path: ./apps/server/dist
|
|
||||||
- name: Download storage.node
|
|
||||||
uses: actions/download-artifact@v3
|
|
||||||
with:
|
|
||||||
name: storage.node
|
|
||||||
path: ./apps/server
|
|
||||||
- name: Setup Git short hash
|
|
||||||
run: |
|
|
||||||
echo "GIT_SHORT_HASH=$(git rev-parse --short HEAD)" >> "$GITHUB_ENV"
|
|
||||||
- name: Login to GitHub Container Registry
|
|
||||||
uses: docker/login-action@v2
|
|
||||||
with:
|
|
||||||
registry: ghcr.io
|
|
||||||
logout: false
|
|
||||||
username: ${{ github.actor }}
|
|
||||||
password: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
- name: Set up QEMU
|
|
||||||
uses: docker/setup-qemu-action@v2
|
|
||||||
- name: Set up Docker Buildx
|
|
||||||
uses: docker/setup-buildx-action@v2
|
|
||||||
- name: Build front Dockerfile
|
|
||||||
uses: docker/build-push-action@v4
|
|
||||||
with:
|
|
||||||
context: .
|
|
||||||
push: true
|
|
||||||
pull: true
|
|
||||||
platforms: linux/amd64,linux/arm64
|
|
||||||
provenance: true
|
|
||||||
file: .github/deployment/front/Dockerfile
|
|
||||||
tags: ghcr.io/toeverything/affine-front:${{ env.GIT_SHORT_HASH }},ghcr.io/toeverything/affine-front:latest
|
|
||||||
|
|
||||||
# setup node without cache configuration
|
|
||||||
# Prisma cache is not compatible with docker build cache
|
|
||||||
- name: Setup Node.js
|
|
||||||
uses: actions/setup-node@v3
|
|
||||||
with:
|
|
||||||
node-version-file: '.nvmrc'
|
|
||||||
registry-url: https://npm.pkg.github.com
|
|
||||||
scope: '@toeverything'
|
|
||||||
|
|
||||||
- name: Install Node.js dependencies
|
|
||||||
run: yarn workspaces focus @affine/server --production
|
|
||||||
|
|
||||||
- name: Generate Prisma client
|
|
||||||
run: yarn workspace @affine/server prisma generate
|
|
||||||
|
|
||||||
- name: Build graphql Dockerfile
|
|
||||||
uses: docker/build-push-action@v4
|
|
||||||
with:
|
|
||||||
context: .
|
|
||||||
push: true
|
|
||||||
pull: true
|
|
||||||
platforms: linux/amd64,linux/arm64
|
|
||||||
provenance: true
|
|
||||||
file: .github/deployment/node/Dockerfile
|
|
||||||
tags: ghcr.io/toeverything/affine-graphql:${{ env.GIT_SHORT_HASH }},ghcr.io/toeverything/affine-graphql:latest
|
|
||||||
|
|||||||
146
.github/workflows/release.yml
vendored
146
.github/workflows/release.yml
vendored
@@ -5,6 +5,13 @@ on:
|
|||||||
branches:
|
branches:
|
||||||
- master
|
- master
|
||||||
|
|
||||||
|
env:
|
||||||
|
BUILD_TYPE: stable
|
||||||
|
APP_NAME: affine
|
||||||
|
COVERAGE: false
|
||||||
|
DISTRIBUTION: browser
|
||||||
|
NX_CLOUD_ACCESS_TOKEN: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }}
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
release:
|
release:
|
||||||
name: Try publishing npm@latest release
|
name: Try publishing npm@latest release
|
||||||
@@ -17,3 +24,142 @@ jobs:
|
|||||||
run: ./scripts/publish.sh
|
run: ./scripts/publish.sh
|
||||||
env:
|
env:
|
||||||
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
|
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
|
||||||
|
|
||||||
|
build-core:
|
||||||
|
name: Build @affine/core
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
environment: development
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
- name: Setup Node.js
|
||||||
|
uses: ./.github/actions/setup-node
|
||||||
|
- name: Build Plugins
|
||||||
|
run: yarn run build:plugins
|
||||||
|
- name: Build Core
|
||||||
|
run: yarn nx build @affine/core
|
||||||
|
- name: Upload core artifact
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: core
|
||||||
|
path: ./apps/core/dist
|
||||||
|
if-no-files-found: error
|
||||||
|
|
||||||
|
build-server:
|
||||||
|
name: Build Server
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
environment: development
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
- name: Setup Node.js
|
||||||
|
uses: ./.github/actions/setup-node
|
||||||
|
with:
|
||||||
|
electron-install: false
|
||||||
|
- name: Build Server
|
||||||
|
run: yarn nx build @affine/server
|
||||||
|
- name: Upload server dist
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: server-dist
|
||||||
|
path: ./apps/server/dist
|
||||||
|
if-no-files-found: error
|
||||||
|
|
||||||
|
build-storage:
|
||||||
|
name: Build Storage
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
env:
|
||||||
|
RUSTFLAGS: '-C debuginfo=1'
|
||||||
|
environment: development
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
- name: Setup Node.js
|
||||||
|
uses: ./.github/actions/setup-node
|
||||||
|
- name: Setup Rust
|
||||||
|
uses: ./.github/actions/setup-rust
|
||||||
|
with:
|
||||||
|
target: 'x86_64-unknown-linux-gnu'
|
||||||
|
- name: Build Storage
|
||||||
|
run: yarn build:storage
|
||||||
|
- name: Upload storage.node
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: storage.node
|
||||||
|
path: ./packages/storage/storage.node
|
||||||
|
if-no-files-found: error
|
||||||
|
|
||||||
|
build-docker:
|
||||||
|
if: github.ref == 'refs/heads/master'
|
||||||
|
name: Build Docker
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
needs:
|
||||||
|
- build-server
|
||||||
|
- build-core
|
||||||
|
- build-storage
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
- name: Download core artifact
|
||||||
|
uses: actions/download-artifact@v3
|
||||||
|
with:
|
||||||
|
name: core
|
||||||
|
path: ./apps/core/dist
|
||||||
|
- name: Download server dist
|
||||||
|
uses: actions/download-artifact@v3
|
||||||
|
with:
|
||||||
|
name: server-dist
|
||||||
|
path: ./apps/server/dist
|
||||||
|
- name: Download storage.node
|
||||||
|
uses: actions/download-artifact@v3
|
||||||
|
with:
|
||||||
|
name: storage.node
|
||||||
|
path: ./apps/server
|
||||||
|
- name: Setup Git short hash
|
||||||
|
run: |
|
||||||
|
echo "GIT_SHORT_HASH=$(git rev-parse --short HEAD)" >> "$GITHUB_ENV"
|
||||||
|
- name: Login to GitHub Container Registry
|
||||||
|
uses: docker/login-action@v2
|
||||||
|
with:
|
||||||
|
registry: ghcr.io
|
||||||
|
logout: false
|
||||||
|
username: ${{ github.actor }}
|
||||||
|
password: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
- name: Set up QEMU
|
||||||
|
uses: docker/setup-qemu-action@v2
|
||||||
|
- name: Set up Docker Buildx
|
||||||
|
uses: docker/setup-buildx-action@v2
|
||||||
|
- name: Build front Dockerfile
|
||||||
|
uses: docker/build-push-action@v4
|
||||||
|
with:
|
||||||
|
context: .
|
||||||
|
push: true
|
||||||
|
pull: true
|
||||||
|
platforms: linux/amd64,linux/arm64
|
||||||
|
provenance: true
|
||||||
|
file: .github/deployment/front/Dockerfile
|
||||||
|
tags: ghcr.io/toeverything/affine-front:${{ env.GIT_SHORT_HASH }},ghcr.io/toeverything/affine-front:latest
|
||||||
|
|
||||||
|
# setup node without cache configuration
|
||||||
|
# Prisma cache is not compatible with docker build cache
|
||||||
|
- name: Setup Node.js
|
||||||
|
uses: actions/setup-node@v3
|
||||||
|
with:
|
||||||
|
node-version-file: '.nvmrc'
|
||||||
|
registry-url: https://npm.pkg.github.com
|
||||||
|
scope: '@toeverything'
|
||||||
|
|
||||||
|
- name: Install Node.js dependencies
|
||||||
|
run: yarn workspaces focus @affine/server --production
|
||||||
|
|
||||||
|
- name: Generate Prisma client
|
||||||
|
run: yarn workspace @affine/server prisma generate
|
||||||
|
|
||||||
|
- name: Build graphql Dockerfile
|
||||||
|
uses: docker/build-push-action@v4
|
||||||
|
with:
|
||||||
|
context: .
|
||||||
|
push: true
|
||||||
|
pull: true
|
||||||
|
platforms: linux/amd64,linux/arm64
|
||||||
|
provenance: true
|
||||||
|
file: .github/deployment/node/Dockerfile
|
||||||
|
tags: ghcr.io/toeverything/affine-graphql:${{ env.GIT_SHORT_HASH }},ghcr.io/toeverything/affine-graphql:latest
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "yarn -T run build-core",
|
"build": "yarn -T run build-core",
|
||||||
"dev": "yarn -T run dev-core",
|
"dev": "yarn -T run dev-core",
|
||||||
"static-server": "ts-node-esm ./server.mts"
|
"static-server": "yarn -T run dev-core --static"
|
||||||
},
|
},
|
||||||
"exports": {
|
"exports": {
|
||||||
"./app": "./src/app.tsx",
|
"./app": "./src/app.tsx",
|
||||||
@@ -84,7 +84,6 @@
|
|||||||
"swc-loader": "^0.2.3",
|
"swc-loader": "^0.2.3",
|
||||||
"swc-plugin-coverage-instrument": "^0.0.20",
|
"swc-plugin-coverage-instrument": "^0.0.20",
|
||||||
"thread-loader": "^4.0.2",
|
"thread-loader": "^4.0.2",
|
||||||
"ts-node": "^10.9.1",
|
|
||||||
"webpack": "^5.88.2",
|
"webpack": "^5.88.2",
|
||||||
"webpack-cli": "^5.1.4",
|
"webpack-cli": "^5.1.4",
|
||||||
"webpack-dev-server": "^4.15.1",
|
"webpack-dev-server": "^4.15.1",
|
||||||
|
|||||||
@@ -1,18 +0,0 @@
|
|||||||
// static server for web app
|
|
||||||
import express from 'express';
|
|
||||||
const app = express();
|
|
||||||
|
|
||||||
const PORT = process.env.PORT || 8080;
|
|
||||||
|
|
||||||
app.use('/', express.static('dist'));
|
|
||||||
|
|
||||||
app.get('/*', (req, res) => {
|
|
||||||
if (req.url.startsWith('/plugins')) {
|
|
||||||
res.sendFile(req.url, { root: 'dist' });
|
|
||||||
}
|
|
||||||
res.sendFile('index.html', { root: 'dist' });
|
|
||||||
});
|
|
||||||
|
|
||||||
app.listen(PORT, () => {
|
|
||||||
console.log(`Server is running on port ${PORT}`);
|
|
||||||
});
|
|
||||||
@@ -9,6 +9,41 @@ import { config } from 'dotenv';
|
|||||||
import { type BuildFlags, projectRoot } from '../config/index.js';
|
import { type BuildFlags, projectRoot } from '../config/index.js';
|
||||||
import { watchI18N } from '../util/i18n.js';
|
import { watchI18N } from '../util/i18n.js';
|
||||||
|
|
||||||
|
const cwd = path.resolve(projectRoot, 'apps', 'core');
|
||||||
|
|
||||||
|
const flags: BuildFlags = {
|
||||||
|
distribution: 'browser',
|
||||||
|
mode: 'development',
|
||||||
|
channel: 'canary',
|
||||||
|
coverage: false,
|
||||||
|
localBlockSuite: undefined,
|
||||||
|
};
|
||||||
|
|
||||||
|
if (process.argv.includes('--static')) {
|
||||||
|
await awaitChildProcess(
|
||||||
|
spawn(
|
||||||
|
'node',
|
||||||
|
[
|
||||||
|
'--loader',
|
||||||
|
'ts-node/esm/transpile-only',
|
||||||
|
'../../node_modules/webpack/bin/webpack.js',
|
||||||
|
'serve',
|
||||||
|
'--mode',
|
||||||
|
'development',
|
||||||
|
'--env',
|
||||||
|
'flags=' + Buffer.from(JSON.stringify(flags), 'utf-8').toString('hex'),
|
||||||
|
].filter((v): v is string => !!v),
|
||||||
|
{
|
||||||
|
cwd,
|
||||||
|
stdio: 'inherit',
|
||||||
|
shell: true,
|
||||||
|
env: process.env,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
);
|
||||||
|
process.exit(0);
|
||||||
|
}
|
||||||
|
|
||||||
const files = ['.env', '.env.local'];
|
const files = ['.env', '.env.local'];
|
||||||
|
|
||||||
for (const file of files) {
|
for (const file of files) {
|
||||||
@@ -21,16 +56,6 @@ for (const file of files) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const cwd = path.resolve(projectRoot, 'apps', 'core');
|
|
||||||
|
|
||||||
const flags: BuildFlags = {
|
|
||||||
distribution: 'browser',
|
|
||||||
mode: 'development',
|
|
||||||
channel: 'canary',
|
|
||||||
coverage: false,
|
|
||||||
localBlockSuite: undefined,
|
|
||||||
};
|
|
||||||
|
|
||||||
const buildFlags = await p.group(
|
const buildFlags = await p.group(
|
||||||
{
|
{
|
||||||
distribution: () =>
|
distribution: () =>
|
||||||
|
|||||||
@@ -1,7 +1,11 @@
|
|||||||
import { test } from '@affine-test/kit/playwright';
|
import { test } from '@affine-test/kit/playwright';
|
||||||
import { withCtrlOrMeta } from '@affine-test/kit/utils/keyboard';
|
import { withCtrlOrMeta } from '@affine-test/kit/utils/keyboard';
|
||||||
import { openHomePage } from '@affine-test/kit/utils/load-page';
|
import { openHomePage } from '@affine-test/kit/utils/load-page';
|
||||||
import { newPage, waitEditorLoad } from '@affine-test/kit/utils/page-logic';
|
import {
|
||||||
|
getBlockSuiteEditorTitle,
|
||||||
|
newPage,
|
||||||
|
waitEditorLoad,
|
||||||
|
} from '@affine-test/kit/utils/page-logic';
|
||||||
import { expect, type Page } from '@playwright/test';
|
import { expect, type Page } from '@playwright/test';
|
||||||
|
|
||||||
const openQuickSearchByShortcut = async (page: Page) =>
|
const openQuickSearchByShortcut = async (page: Page) =>
|
||||||
@@ -184,40 +188,51 @@ test('Assert the recent browse pages are on the recent list', async ({
|
|||||||
// create first page
|
// create first page
|
||||||
await newPage(page);
|
await newPage(page);
|
||||||
await page.keyboard.insertText('sgtokidoki');
|
await page.keyboard.insertText('sgtokidoki');
|
||||||
await page.waitForTimeout(300);
|
await page.waitForTimeout(200);
|
||||||
|
|
||||||
// create second page
|
// create second page
|
||||||
await openQuickSearchByShortcut(page);
|
await openQuickSearchByShortcut(page);
|
||||||
const addNewPage = page.getByTestId('quick-search-add-new-page');
|
const addNewPage = page.getByTestId('quick-search-add-new-page');
|
||||||
await addNewPage.click();
|
await addNewPage.click();
|
||||||
await page.keyboard.insertText('theliquidhorse');
|
await page.keyboard.insertText('theliquidhorse');
|
||||||
await page.waitForTimeout(300);
|
await page.waitForTimeout(200);
|
||||||
|
|
||||||
// create thrid page
|
// create thrid page
|
||||||
await openQuickSearchByShortcut(page);
|
await openQuickSearchByShortcut(page);
|
||||||
await addNewPage.click();
|
await addNewPage.click();
|
||||||
await page.keyboard.insertText('battlekot');
|
await page.keyboard.insertText('battlekot');
|
||||||
await page.waitForTimeout(300);
|
await page.waitForTimeout(200);
|
||||||
|
|
||||||
await openQuickSearchByShortcut(page);
|
await openQuickSearchByShortcut(page);
|
||||||
|
await page.waitForTimeout(200);
|
||||||
|
{
|
||||||
// check does all 3 pages exists on recent page list
|
// check does all 3 pages exists on recent page list
|
||||||
await expect(page.getByRole('button', { name: 'battlekot' })).toHaveCount(1);
|
const quickSearchItems = page.locator('[cmdk-item]');
|
||||||
await expect(
|
expect(await quickSearchItems.nth(0).textContent()).toBe('battlekot');
|
||||||
page.getByRole('button', { name: 'theliquidhorse' })
|
expect(await quickSearchItems.nth(1).textContent()).toBe('theliquidhorse');
|
||||||
).toHaveCount(1);
|
expect(await quickSearchItems.nth(2).textContent()).toBe('sgtokidoki');
|
||||||
await expect(page.getByRole('button', { name: 'sgtokidoki' })).toHaveCount(1);
|
}
|
||||||
|
|
||||||
// create forth page, and check does the recent page list only contains 3 pages
|
// create forth page, and check does the recent page list only contains three pages
|
||||||
await openHomePage(page);
|
await openHomePage(page);
|
||||||
await page.waitForTimeout(1000);
|
await page.waitForTimeout(1000);
|
||||||
await openQuickSearchByShortcut(page);
|
await openQuickSearchByShortcut(page);
|
||||||
await addNewPage.click();
|
await addNewPage.click();
|
||||||
await page.waitForTimeout(300);
|
await page.waitForTimeout(200);
|
||||||
await page.keyboard.insertText('affine is the best');
|
{
|
||||||
await page.waitForTimeout(300);
|
const title = getBlockSuiteEditorTitle(page);
|
||||||
|
await title.type('affine is the best', {
|
||||||
|
delay: 50,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
await page.waitForTimeout(1000);
|
||||||
await openQuickSearchByShortcut(page);
|
await openQuickSearchByShortcut(page);
|
||||||
await expect(
|
{
|
||||||
page.getByRole('button', { name: 'affine is the best' })
|
const quickSearchItems = page.locator('[cmdk-item]');
|
||||||
).toHaveCount(1);
|
expect(await quickSearchItems.nth(0).textContent()).toBe(
|
||||||
await expect(page.getByRole('button', { name: 'sgtokidoki' })).toHaveCount(0);
|
'affine is the best'
|
||||||
|
);
|
||||||
|
expect(await quickSearchItems.nth(1).textContent()).toBe('battlekot');
|
||||||
|
expect(await quickSearchItems.nth(2).textContent()).toBe('theliquidhorse');
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -281,7 +281,6 @@ __metadata:
|
|||||||
swc-plugin-coverage-instrument: ^0.0.20
|
swc-plugin-coverage-instrument: ^0.0.20
|
||||||
swr: 2.2.1
|
swr: 2.2.1
|
||||||
thread-loader: ^4.0.2
|
thread-loader: ^4.0.2
|
||||||
ts-node: ^10.9.1
|
|
||||||
webpack: ^5.88.2
|
webpack: ^5.88.2
|
||||||
webpack-cli: ^5.1.4
|
webpack-cli: ^5.1.4
|
||||||
webpack-dev-server: ^4.15.1
|
webpack-dev-server: ^4.15.1
|
||||||
|
|||||||
Reference in New Issue
Block a user