build: fix nx.json (#2951)

This commit is contained in:
Alex Yang
2023-07-01 16:34:30 +08:00
parent 8f09df655c
commit 00604bd4b0
7 changed files with 25 additions and 114 deletions

View File

@@ -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

View File

@@ -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' }}

View File

@@ -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' }}

View File

@@ -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();
});
});

View File

@@ -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<unknown>)();
await (globalThis.AFFINE_DEBUG.loginMockUser2 as () => Promise<unknown>)();
expect(setItem).toBeCalledTimes(2);
});
});

26
nx.json
View File

@@ -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": {

View File

@@ -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",