From a9adb4dda2c5e330acb2269b5c5287114f9e0f99 Mon Sep 17 00:00:00 2001 From: Alex Yang Date: Sat, 1 Jul 2023 16:34:30 +0800 Subject: [PATCH] build: fix nx.json (#2951) --- .github/workflows/build.yml | 20 +++----- .github/workflows/nightly-build.yml | 2 +- .github/workflows/release-desktop-app.yml | 2 +- .../adapters/affine/__tests__/index.spec.tsx | 50 ------------------- apps/web/src/shared/__tests__/apis.spec.ts | 38 -------------- nx.json | 26 +++++----- package.json | 1 + 7 files changed, 25 insertions(+), 114 deletions(-) delete mode 100644 apps/web/src/adapters/affine/__tests__/index.spec.tsx delete mode 100644 apps/web/src/shared/__tests__/apis.spec.ts diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 3d1eae59ba..ccd7f49ba3 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -153,8 +153,11 @@ jobs: uses: ./.github/actions/setup-rust with: target: 'x86_64-unknown-linux-gnu' + - name: Build Storage + run: yarn build:storage - name: Run server tests - run: yarn nx test:coverage @affine/server + run: yarn test:coverage + working-directory: apps/server env: CARGO_TARGET_DIR: '${{ github.workspace }}/target' DATABASE_URL: postgresql://affine:affine@localhost:5432/affine @@ -358,7 +361,7 @@ jobs: run: yarn run build:plugins - name: Build Desktop Layers - run: yarn nx build @affine/electron + run: yarn workspace @affine/electron build - name: Download static resource artifact uses: actions/download-artifact@v3 @@ -404,21 +407,14 @@ jobs: name: Unit Test runs-on: ubuntu-latest environment: development - services: - octobase: - image: ghcr.io/toeverything/cloud-self-hosted:nightly-latest - ports: - - 3000:3000 - env: - SIGN_KEY: 'test123' - RUST_LOG: 'debug' - JWST_DEV: '1' - steps: - uses: actions/checkout@v3 - name: Setup Node.js uses: ./.github/actions/setup-node + - name: Build Infra + run: yarn run build:infra + - name: Unit Test run: yarn nx test:coverage @affine/monorepo diff --git a/.github/workflows/nightly-build.yml b/.github/workflows/nightly-build.yml index a0cd3b6637..d834e3f867 100644 --- a/.github/workflows/nightly-build.yml +++ b/.github/workflows/nightly-build.yml @@ -130,7 +130,7 @@ jobs: run: yarn run build:plugins - name: Build Desktop Layers - run: yarn nx build @affine/electron + run: yarn workspace @affine/electron build - name: Signing By Apple Developer ID if: ${{ matrix.spec.platform == 'darwin' }} diff --git a/.github/workflows/release-desktop-app.yml b/.github/workflows/release-desktop-app.yml index de99d4ca4f..de1a050bbb 100644 --- a/.github/workflows/release-desktop-app.yml +++ b/.github/workflows/release-desktop-app.yml @@ -130,7 +130,7 @@ jobs: run: yarn run build:plugins - name: Build Desktop Layers - run: yarn nx build @affine/electron + run: yarn workspace @affine/electron build - name: Signing By Apple Developer ID if: ${{ matrix.spec.platform == 'darwin' }} diff --git a/apps/web/src/adapters/affine/__tests__/index.spec.tsx b/apps/web/src/adapters/affine/__tests__/index.spec.tsx deleted file mode 100644 index b81278e459..0000000000 --- a/apps/web/src/adapters/affine/__tests__/index.spec.tsx +++ /dev/null @@ -1,50 +0,0 @@ -/** - * @vitest-environment happy-dom - */ -import { - getLoginStorage, - isExpired, - loginResponseSchema, - parseIdToken, - setLoginStorage, -} from '@affine/workspace/affine/login'; -import user1 from '@affine-test/fixtures/built-in-user1.json'; -import { renderHook } from '@testing-library/react'; -import { afterEach, describe, expect, test } from 'vitest'; - -import { useAffineRefreshAuthToken } from '../../../hooks/affine/use-affine-refresh-auth-token'; - -afterEach(() => { - localStorage.clear(); -}); - -describe('AFFiNE workspace', () => { - test('Provider', async () => { - expect(getLoginStorage()).toBeNull(); - const data = await fetch('http://127.0.0.1:3000/api/user/token', { - method: 'POST', - headers: { - 'Content-Type': 'application/json', - }, - body: JSON.stringify({ - type: 'DebugLoginUser', - email: user1.email, - password: user1.password, - }), - }).then(r => r.json()); - loginResponseSchema.parse(data); - setLoginStorage({ - // expired token that already expired - token: - 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE2ODA4MjE0OTQsImlkIjoiaFd0dkFoM1E3SGhiWVlNeGxyX1I0IiwibmFtZSI6ImRlYnVnMSIsImVtYWlsIjoiZGVidWcxQHRvZXZlcnl0aGluZy5pbmZvIiwiYXZhdGFyX3VybCI6bnVsbCwiY3JlYXRlZF9hdCI6MTY4MDgxNTcxMTAwMH0.fDSkbM-ovmGD21sKYSTuiqC1dTiceOfcgIUfI2dLsBk', - // but refresh is still valid - refresh: data.refresh, - }); - const hook = renderHook(() => useAffineRefreshAuthToken(1)); - await new Promise(resolve => setTimeout(resolve, 3000)); - const userData = parseIdToken(getLoginStorage()?.token as string); - expect(userData).not.toBeNull(); - expect(isExpired(userData)).toBe(false); - hook.unmount(); - }); -}); diff --git a/apps/web/src/shared/__tests__/apis.spec.ts b/apps/web/src/shared/__tests__/apis.spec.ts deleted file mode 100644 index fec8972cf0..0000000000 --- a/apps/web/src/shared/__tests__/apis.spec.ts +++ /dev/null @@ -1,38 +0,0 @@ -/** - * @vitest-environment node - */ -import { loginResponseSchema } from '@affine/workspace/affine/login'; -import type { affineApis as API } from '@affine/workspace/affine/shared'; -import { beforeAll, describe, expect, it, vi } from 'vitest'; - -let affineApis: typeof API; - -beforeAll(async () => { - // @ts-expect-error - globalThis.window = undefined; - affineApis = (await import('@affine/workspace/affine/shared')).affineApis; -}); - -describe('apis', () => { - it('should defined', async () => { - expect(affineApis).toBeDefined(); - expect(affineApis).toBe(globalThis.AFFINE_APIS); - }); - - it('login mock user', async () => { - const setItem = vi.fn((key: string, value: unknown) => { - expect(key).toBe('affine-login-v2'); - expect(value).toBeTypeOf('string'); - loginResponseSchema.parse(JSON.parse(value as string)); - }); - vi.stubGlobal('localStorage', { - setItem, - }); - expect(globalThis.AFFINE_DEBUG).toBeDefined(); - expect(globalThis.AFFINE_DEBUG.loginMockUser1).toBeTypeOf('function'); - expect(globalThis.AFFINE_DEBUG.loginMockUser2).toBeTypeOf('function'); - await (globalThis.AFFINE_DEBUG.loginMockUser1 as () => Promise)(); - await (globalThis.AFFINE_DEBUG.loginMockUser2 as () => Promise)(); - expect(setItem).toBeCalledTimes(2); - }); -}); diff --git a/nx.json b/nx.json index 5dc428433f..1ef1cbb6f2 100644 --- a/nx.json +++ b/nx.json @@ -34,13 +34,11 @@ "{projectRoot}/out", "{projectRoot}/node_modules/.cache", "{projectRoot}/target", - "{workspaceRoot}/apps/web/.next", "{workspaceRoot}/apps/storybook/storybook-static", "{workspaceRoot}/packages/i18n/src/i18n-generated.ts", - "{workspaceRoot}/packages/native/affine.*.node", + "{workspaceRoot}/packages/native/*.node", "{workspaceRoot}/packages/storage/*.node", - "{workspaceRoot}/affine.db", - "{workspaceRoot/apps/electron/dist" + "{workspaceRoot}/affine.db" ], "inputs": [ { @@ -85,7 +83,6 @@ ] }, "e2e": { - "dependsOn": ["^build"], "outputs": ["{workspaceRoot}/.nyc_output", "{projectRoot}/test-results"], "inputs": [ { @@ -97,7 +94,6 @@ ] }, "e2e:coverage": { - "dependsOn": ["^build"], "outputs": ["{workspaceRoot}/.nyc_output", "{projectRoot}/test-results"], "inputs": [ { @@ -109,28 +105,34 @@ ] }, "test": { + "outputs": ["{workspaceRoot}/.nyc_output"], "inputs": [ { "env": "ENABLE_PRELOADING" + }, + { + "env": "COVERAGE" } - ], - "dependsOn": ["^build"] + ] }, "test:ui": { + "outputs": ["{workspaceRoot}/.nyc_output"], "inputs": [ { "env": "ENABLE_PRELOADING" + }, + { + "env": "COVERAGE" } - ], - "dependsOn": ["^build"] + ] }, "test:coverage": { + "outputs": ["{workspaceRoot}/.nyc_output"], "inputs": [ { "env": "ENABLE_PRELOADING" } - ], - "dependsOn": ["^build"] + ] } }, "generators": { diff --git a/package.json b/package.json index 790178b4a4..97053284e3 100644 --- a/package.json +++ b/package.json @@ -19,6 +19,7 @@ "dev:plugins": "./apps/electron/scripts/plugins/dev-plugins.mjs", "build": "yarn nx build @affine/web", "build:electron": "yarn nx build @affine/electron", + "build:storage": "yarn nx run-many -t build -p @affine/storage", "build:infra": "yarn nx run-many -t build -p plugin-infra infra", "build:plugins": "yarn nx run-many -t build -p @affine/bookmark-block", "build:storybook": "yarn nx build @affine/storybook",