diff --git a/oxlint.json b/oxlint.json
index 6d49866ff0..e60ab934fd 100644
--- a/oxlint.json
+++ b/oxlint.json
@@ -200,9 +200,9 @@
{
"files": [
"*.{spec,test,e2e,stories}.{ts,tsx}",
- "tests/**/*.ts",
- "packages/backend/server/tests/**/*.ts",
- "tools/**.*"
+ "tests/**/*",
+ "**/__tests__/**/*",
+ "tools/**/*"
],
"rules": {
"typescript/no-non-null-assertion": "off",
diff --git a/packages/backend/server/package.json b/packages/backend/server/package.json
index 7c293572b1..67ba1ba379 100644
--- a/packages/backend/server/package.json
+++ b/packages/backend/server/package.json
@@ -11,9 +11,9 @@
"build": "tsc",
"dev": "nodemon ./src/index.ts",
"test": "ava --concurrency 1 --serial",
- "test:copilot": "ava \"tests/**/copilot-*.spec.ts\"",
+ "test:copilot": "ava \"src/__tests__/**/copilot-*.spec.ts\"",
"test:coverage": "c8 ava --concurrency 1 --serial",
- "test:copilot:coverage": "c8 ava --timeout=5m \"tests/**/copilot-*.spec.ts\"",
+ "test:copilot:coverage": "c8 ava --timeout=5m \"src/__tests__/**/copilot-*.spec.ts\"",
"data-migration": "cross-env NODE_ENV=script r ./src/data/index.ts",
"predeploy": "yarn prisma migrate deploy && NODE_ENV=script node --import ./scripts/register.js ./dist/data/index.js run",
"postinstall": "prisma generate"
@@ -96,6 +96,7 @@
"devDependencies": {
"@affine-test/kit": "workspace:*",
"@affine-tools/cli": "workspace:*",
+ "@affine-tools/utils": "workspace:*",
"@affine/server-native": "workspace:*",
"@nestjs/testing": "^10.4.15",
"@types/cookie-parser": "^1.4.8",
@@ -134,8 +135,7 @@
},
"files": [
"**/__tests__/**/*.spec.ts",
- "tests/**/*.spec.ts",
- "tests/**/*.e2e.ts"
+ "**/__tests__/**/*.e2e.ts"
],
"require": [
"./src/prelude.ts"
diff --git a/packages/backend/server/tests/app/graphql.e2e.ts b/packages/backend/server/src/__tests__/app/graphql.e2e.ts
similarity index 96%
rename from packages/backend/server/tests/app/graphql.e2e.ts
rename to packages/backend/server/src/__tests__/app/graphql.e2e.ts
index 69b5895acb..4bf3a618ef 100644
--- a/packages/backend/server/tests/app/graphql.e2e.ts
+++ b/packages/backend/server/src/__tests__/app/graphql.e2e.ts
@@ -3,7 +3,7 @@ import type { TestFn } from 'ava';
import ava from 'ava';
import request from 'supertest';
-import { buildAppModule } from '../../src/app.module';
+import { buildAppModule } from '../../app.module';
import { createTestingApp } from '../utils';
const gql = '/graphql';
diff --git a/packages/backend/server/tests/app/renderer.e2e.ts b/packages/backend/server/src/__tests__/app/renderer.e2e.ts
similarity index 93%
rename from packages/backend/server/tests/app/renderer.e2e.ts
rename to packages/backend/server/src/__tests__/app/renderer.e2e.ts
index d232d47873..1c80c0ccdc 100644
--- a/packages/backend/server/tests/app/renderer.e2e.ts
+++ b/packages/backend/server/src/__tests__/app/renderer.e2e.ts
@@ -3,7 +3,7 @@ import type { TestFn } from 'ava';
import ava from 'ava';
import request from 'supertest';
-import { buildAppModule } from '../../src/app.module';
+import { buildAppModule } from '../../app.module';
import { createTestingApp } from '../utils';
const test = ava as TestFn<{
diff --git a/packages/backend/server/tests/app/selfhost.e2e.ts b/packages/backend/server/src/__tests__/app/selfhost.e2e.ts
similarity index 97%
rename from packages/backend/server/tests/app/selfhost.e2e.ts
rename to packages/backend/server/src/__tests__/app/selfhost.e2e.ts
index 86315fe05d..4133fa7704 100644
--- a/packages/backend/server/tests/app/selfhost.e2e.ts
+++ b/packages/backend/server/src/__tests__/app/selfhost.e2e.ts
@@ -7,9 +7,9 @@ import type { TestFn } from 'ava';
import ava from 'ava';
import request from 'supertest';
-import { buildAppModule } from '../../src/app.module';
-import { Config } from '../../src/base';
-import { ServerService } from '../../src/core/config';
+import { buildAppModule } from '../../app.module';
+import { Config } from '../../base';
+import { ServerService } from '../../core/config';
import { createTestingApp, initTestingDB } from '../utils';
const test = ava as TestFn<{
diff --git a/packages/backend/server/tests/app/sync.e2e.ts b/packages/backend/server/src/__tests__/app/sync.e2e.ts
similarity index 93%
rename from packages/backend/server/tests/app/sync.e2e.ts
rename to packages/backend/server/src/__tests__/app/sync.e2e.ts
index d23c998bad..471a548cff 100644
--- a/packages/backend/server/tests/app/sync.e2e.ts
+++ b/packages/backend/server/src/__tests__/app/sync.e2e.ts
@@ -3,7 +3,7 @@ import type { TestFn } from 'ava';
import ava from 'ava';
import request from 'supertest';
-import { buildAppModule } from '../../src/app.module';
+import { buildAppModule } from '../../app.module';
import { createTestingApp } from '../utils';
const test = ava as TestFn<{
diff --git a/packages/backend/server/tests/auth/auth.e2e.ts b/packages/backend/server/src/__tests__/auth/auth.e2e.ts
similarity index 98%
rename from packages/backend/server/tests/auth/auth.e2e.ts
rename to packages/backend/server/src/__tests__/auth/auth.e2e.ts
index 594000713e..52d92cc7e3 100644
--- a/packages/backend/server/tests/auth/auth.e2e.ts
+++ b/packages/backend/server/src/__tests__/auth/auth.e2e.ts
@@ -8,8 +8,8 @@ import type { INestApplication } from '@nestjs/common';
import type { TestFn } from 'ava';
import ava from 'ava';
-import { MailService } from '../../src/base/mailer';
-import { AuthService } from '../../src/core/auth/service';
+import { MailService } from '../../base/mailer';
+import { AuthService } from '../../core/auth/service';
import {
changeEmail,
changePassword,
diff --git a/packages/backend/server/tests/auth/controller.spec.ts b/packages/backend/server/src/__tests__/auth/controller.spec.ts
similarity index 96%
rename from packages/backend/server/tests/auth/controller.spec.ts
rename to packages/backend/server/src/__tests__/auth/controller.spec.ts
index 21422153dd..f4dc56d339 100644
--- a/packages/backend/server/tests/auth/controller.spec.ts
+++ b/packages/backend/server/src/__tests__/auth/controller.spec.ts
@@ -4,11 +4,11 @@ import ava, { TestFn } from 'ava';
import Sinon from 'sinon';
import request from 'supertest';
-import { MailService } from '../../src/base';
-import { AuthModule, CurrentUser } from '../../src/core/auth';
-import { AuthService } from '../../src/core/auth/service';
-import { FeatureModule } from '../../src/core/features';
-import { UserModule, UserService } from '../../src/core/user';
+import { MailService } from '../../base';
+import { AuthModule, CurrentUser } from '../../core/auth';
+import { AuthService } from '../../core/auth/service';
+import { FeatureModule } from '../../core/features';
+import { UserModule, UserService } from '../../core/user';
import { createTestingApp, getSession, sessionCookie } from '../utils';
const test = ava as TestFn<{
diff --git a/packages/backend/server/tests/auth/guard.spec.ts b/packages/backend/server/src/__tests__/auth/guard.spec.ts
similarity index 97%
rename from packages/backend/server/tests/auth/guard.spec.ts
rename to packages/backend/server/src/__tests__/auth/guard.spec.ts
index bf6a5c5cfa..f9bd66944e 100644
--- a/packages/backend/server/tests/auth/guard.spec.ts
+++ b/packages/backend/server/src/__tests__/auth/guard.spec.ts
@@ -4,8 +4,8 @@ import ava, { TestFn } from 'ava';
import Sinon from 'sinon';
import request from 'supertest';
-import { AuthModule, CurrentUser, Public, Session } from '../../src/core/auth';
-import { AuthService } from '../../src/core/auth/service';
+import { AuthModule, CurrentUser, Public, Session } from '../../core/auth';
+import { AuthService } from '../../core/auth/service';
import { createTestingApp } from '../utils';
@Controller('/')
diff --git a/packages/backend/server/tests/auth/service.spec.ts b/packages/backend/server/src/__tests__/auth/service.spec.ts
similarity index 95%
rename from packages/backend/server/tests/auth/service.spec.ts
rename to packages/backend/server/src/__tests__/auth/service.spec.ts
index af1795588b..6dc96c80f0 100644
--- a/packages/backend/server/tests/auth/service.spec.ts
+++ b/packages/backend/server/src/__tests__/auth/service.spec.ts
@@ -2,11 +2,11 @@ import { TestingModule } from '@nestjs/testing';
import { PrismaClient } from '@prisma/client';
import ava, { TestFn } from 'ava';
-import { CurrentUser } from '../../src/core/auth';
-import { AuthService } from '../../src/core/auth/service';
-import { FeatureModule } from '../../src/core/features';
-import { QuotaModule } from '../../src/core/quota';
-import { UserModule, UserService } from '../../src/core/user';
+import { CurrentUser } from '../../core/auth';
+import { AuthService } from '../../core/auth/service';
+import { FeatureModule } from '../../core/features';
+import { QuotaModule } from '../../core/quota';
+import { UserModule, UserService } from '../../core/user';
import { createTestingModule, initTestingDB } from '../utils';
const test = ava as TestFn<{
diff --git a/packages/backend/server/tests/auth/token.spec.ts b/packages/backend/server/src/__tests__/auth/token.spec.ts
similarity index 97%
rename from packages/backend/server/tests/auth/token.spec.ts
rename to packages/backend/server/src/__tests__/auth/token.spec.ts
index c628fc8baa..e9e9820bcd 100644
--- a/packages/backend/server/tests/auth/token.spec.ts
+++ b/packages/backend/server/src/__tests__/auth/token.spec.ts
@@ -2,7 +2,7 @@ import { TestingModule } from '@nestjs/testing';
import { PrismaClient } from '@prisma/client';
import ava, { TestFn } from 'ava';
-import { TokenService, TokenType } from '../../src/core/auth';
+import { TokenService, TokenType } from '../../core/auth';
import { createTestingModule } from '../utils';
const test = ava as TestFn<{
diff --git a/packages/backend/server/tests/cache.spec.ts b/packages/backend/server/src/__tests__/cache.spec.ts
similarity index 98%
rename from packages/backend/server/tests/cache.spec.ts
rename to packages/backend/server/src/__tests__/cache.spec.ts
index fcc25fbbe1..3cb7aff37f 100644
--- a/packages/backend/server/tests/cache.spec.ts
+++ b/packages/backend/server/src/__tests__/cache.spec.ts
@@ -1,7 +1,7 @@
import { TestingModule } from '@nestjs/testing';
import test from 'ava';
-import { Cache } from '../src/base/cache';
+import { Cache } from '../base/cache';
import { createTestingModule } from './utils';
let cache: Cache;
diff --git a/packages/backend/server/tests/config.spec.ts b/packages/backend/server/src/__tests__/config.spec.ts
similarity index 93%
rename from packages/backend/server/tests/config.spec.ts
rename to packages/backend/server/src/__tests__/config.spec.ts
index 3b6ef2c593..3b3e71283d 100644
--- a/packages/backend/server/tests/config.spec.ts
+++ b/packages/backend/server/src/__tests__/config.spec.ts
@@ -1,7 +1,7 @@
import { TestingModule } from '@nestjs/testing';
import test from 'ava';
-import { Config, ConfigModule } from '../src/base/config';
+import { Config, ConfigModule } from '../base/config';
import { createTestingModule } from './utils';
let config: Config;
diff --git a/packages/backend/server/tests/copilot-provider.spec.ts b/packages/backend/server/src/__tests__/copilot-provider.spec.ts
similarity index 96%
rename from packages/backend/server/tests/copilot-provider.spec.ts
rename to packages/backend/server/src/__tests__/copilot-provider.spec.ts
index e17d8b4b86..70344ac26a 100644
--- a/packages/backend/server/tests/copilot-provider.spec.ts
+++ b/packages/backend/server/src/__tests__/copilot-provider.spec.ts
@@ -1,14 +1,14 @@
-///
+///
import { TestingModule } from '@nestjs/testing';
import type { ExecutionContext, TestFn } from 'ava';
import ava from 'ava';
-import { ConfigModule } from '../src/base/config';
-import { AuthService } from '../src/core/auth';
-import { QuotaModule } from '../src/core/quota';
-import { CopilotModule } from '../src/plugins/copilot';
-import { prompts, PromptService } from '../src/plugins/copilot/prompt';
+import { ConfigModule } from '../base/config';
+import { AuthService } from '../core/auth';
+import { QuotaModule } from '../core/quota';
+import { CopilotModule } from '../plugins/copilot';
+import { prompts, PromptService } from '../plugins/copilot/prompt';
import {
CopilotProviderService,
FalProvider,
@@ -16,17 +16,17 @@ import {
PerplexityProvider,
registerCopilotProvider,
unregisterCopilotProvider,
-} from '../src/plugins/copilot/providers';
+} from '../plugins/copilot/providers';
import {
CopilotChatTextExecutor,
CopilotWorkflowService,
GraphExecutorState,
-} from '../src/plugins/copilot/workflow';
+} from '../plugins/copilot/workflow';
import {
CopilotChatImageExecutor,
CopilotCheckHtmlExecutor,
CopilotCheckJsonExecutor,
-} from '../src/plugins/copilot/workflow/executor';
+} from '../plugins/copilot/workflow/executor';
import { createTestingModule } from './utils';
import { TestAssets } from './utils/copilot';
diff --git a/packages/backend/server/tests/copilot.e2e.ts b/packages/backend/server/src/__tests__/copilot.e2e.ts
similarity index 97%
rename from packages/backend/server/tests/copilot.e2e.ts
rename to packages/backend/server/src/__tests__/copilot.e2e.ts
index 71a523b314..f2a698221a 100644
--- a/packages/backend/server/tests/copilot.e2e.ts
+++ b/packages/backend/server/src/__tests__/copilot.e2e.ts
@@ -1,4 +1,4 @@
-///
+///
import { randomUUID } from 'node:crypto';
@@ -7,11 +7,11 @@ import type { TestFn } from 'ava';
import ava from 'ava';
import Sinon from 'sinon';
-import { ConfigModule } from '../src/base/config';
-import { AuthService } from '../src/core/auth';
-import { WorkspaceModule } from '../src/core/workspaces';
-import { CopilotModule } from '../src/plugins/copilot';
-import { prompts, PromptService } from '../src/plugins/copilot/prompt';
+import { ConfigModule } from '../base/config';
+import { AuthService } from '../core/auth';
+import { WorkspaceModule } from '../core/workspaces';
+import { CopilotModule } from '../plugins/copilot';
+import { prompts, PromptService } from '../plugins/copilot/prompt';
import {
CopilotProviderService,
FalProvider,
@@ -19,8 +19,8 @@ import {
PerplexityProvider,
registerCopilotProvider,
unregisterCopilotProvider,
-} from '../src/plugins/copilot/providers';
-import { CopilotStorage } from '../src/plugins/copilot/storage';
+} from '../plugins/copilot/providers';
+import { CopilotStorage } from '../plugins/copilot/storage';
import {
acceptInviteById,
createTestingApp,
diff --git a/packages/backend/server/tests/copilot.spec.ts b/packages/backend/server/src/__tests__/copilot.spec.ts
similarity index 97%
rename from packages/backend/server/tests/copilot.spec.ts
rename to packages/backend/server/src/__tests__/copilot.spec.ts
index 845046cfd0..b99df0c3ac 100644
--- a/packages/backend/server/tests/copilot.spec.ts
+++ b/packages/backend/server/src/__tests__/copilot.spec.ts
@@ -1,27 +1,27 @@
-///
+///
import { TestingModule } from '@nestjs/testing';
import type { TestFn } from 'ava';
import ava from 'ava';
import Sinon from 'sinon';
-import { ConfigModule } from '../src/base/config';
-import { AuthService } from '../src/core/auth';
-import { QuotaModule } from '../src/core/quota';
-import { CopilotModule } from '../src/plugins/copilot';
-import { prompts, PromptService } from '../src/plugins/copilot/prompt';
+import { ConfigModule } from '../base/config';
+import { AuthService } from '../core/auth';
+import { QuotaModule } from '../core/quota';
+import { CopilotModule } from '../plugins/copilot';
+import { prompts, PromptService } from '../plugins/copilot/prompt';
import {
CopilotProviderService,
OpenAIProvider,
registerCopilotProvider,
unregisterCopilotProvider,
-} from '../src/plugins/copilot/providers';
-import { CitationParser } from '../src/plugins/copilot/providers/perplexity';
-import { ChatSessionService } from '../src/plugins/copilot/session';
+} from '../plugins/copilot/providers';
+import { CitationParser } from '../plugins/copilot/providers/perplexity';
+import { ChatSessionService } from '../plugins/copilot/session';
import {
CopilotCapability,
CopilotProviderType,
-} from '../src/plugins/copilot/types';
+} from '../plugins/copilot/types';
import {
CopilotChatTextExecutor,
CopilotWorkflowService,
@@ -30,7 +30,7 @@ import {
WorkflowGraphExecutor,
type WorkflowNodeData,
WorkflowNodeType,
-} from '../src/plugins/copilot/workflow';
+} from '../plugins/copilot/workflow';
import {
CopilotChatImageExecutor,
CopilotCheckHtmlExecutor,
@@ -38,9 +38,9 @@ import {
getWorkflowExecutor,
NodeExecuteState,
NodeExecutorType,
-} from '../src/plugins/copilot/workflow/executor';
-import { AutoRegisteredWorkflowExecutor } from '../src/plugins/copilot/workflow/executor/utils';
-import { WorkflowGraphList } from '../src/plugins/copilot/workflow/graph';
+} from '../plugins/copilot/workflow/executor';
+import { AutoRegisteredWorkflowExecutor } from '../plugins/copilot/workflow/executor/utils';
+import { WorkflowGraphList } from '../plugins/copilot/workflow/graph';
import { createTestingModule } from './utils';
import { MockCopilotTestProvider, WorkflowTestCases } from './utils/copilot';
diff --git a/packages/backend/server/tests/doc/cron.spec.ts b/packages/backend/server/src/__tests__/doc/cron.spec.ts
similarity index 93%
rename from packages/backend/server/tests/doc/cron.spec.ts
rename to packages/backend/server/src/__tests__/doc/cron.spec.ts
index ac9fa28de3..9cf045ac79 100644
--- a/packages/backend/server/tests/doc/cron.spec.ts
+++ b/packages/backend/server/src/__tests__/doc/cron.spec.ts
@@ -6,9 +6,9 @@ import { PrismaClient } from '@prisma/client';
import test from 'ava';
import * as Sinon from 'sinon';
-import { Config } from '../../src/base/config';
-import { DocStorageModule } from '../../src/core/doc';
-import { DocStorageCronJob } from '../../src/core/doc/job';
+import { Config } from '../../base/config';
+import { DocStorageModule } from '../../core/doc';
+import { DocStorageCronJob } from '../../core/doc/job';
import { createTestingModule } from '../utils';
let m: TestingModule;
diff --git a/packages/backend/server/tests/doc/history.spec.ts b/packages/backend/server/src/__tests__/doc/history.spec.ts
similarity index 97%
rename from packages/backend/server/tests/doc/history.spec.ts
rename to packages/backend/server/src/__tests__/doc/history.spec.ts
index 70350e08fc..e53f09fceb 100644
--- a/packages/backend/server/tests/doc/history.spec.ts
+++ b/packages/backend/server/src/__tests__/doc/history.spec.ts
@@ -4,12 +4,9 @@ import { PrismaClient } from '@prisma/client';
import test from 'ava';
import * as Sinon from 'sinon';
-import {
- DocStorageModule,
- PgWorkspaceDocStorageAdapter,
-} from '../../src/core/doc';
-import { DocStorageOptions } from '../../src/core/doc/options';
-import { DocRecord } from '../../src/core/doc/storage';
+import { DocStorageModule, PgWorkspaceDocStorageAdapter } from '../../core/doc';
+import { DocStorageOptions } from '../../core/doc/options';
+import { DocRecord } from '../../core/doc/storage';
import { createTestingModule, initTestingDB } from '../utils';
let m: TestingModule;
diff --git a/packages/backend/server/tests/doc/renderer.spec.ts b/packages/backend/server/src/__tests__/doc/renderer.spec.ts
similarity index 92%
rename from packages/backend/server/tests/doc/renderer.spec.ts
rename to packages/backend/server/src/__tests__/doc/renderer.spec.ts
index 9aaaa17088..d8840f9134 100644
--- a/packages/backend/server/tests/doc/renderer.spec.ts
+++ b/packages/backend/server/src/__tests__/doc/renderer.spec.ts
@@ -1,14 +1,14 @@
import { mkdirSync, writeFileSync } from 'node:fs';
import path from 'node:path';
-import { fileURLToPath } from 'node:url';
+import { Package } from '@affine-tools/utils/workspace';
import type { INestApplication } from '@nestjs/common';
import { PrismaClient } from '@prisma/client';
import type { TestFn } from 'ava';
import ava from 'ava';
import request from 'supertest';
-import { DocRendererModule } from '../../src/core/doc-renderer';
+import { DocRendererModule } from '../../core/doc-renderer';
import { createTestingApp } from '../utils';
const test = ava as TestFn<{
@@ -48,10 +48,7 @@ function initTestStaticFiles(staticPath: string) {
}
test.before('init selfhost server', async t => {
- const staticPath = path.join(
- fileURLToPath(import.meta.url),
- '../../../static'
- );
+ const staticPath = new Package('@affine/server').join('static').value;
initTestStaticFiles(staticPath);
const { app } = await createTestingApp({
diff --git a/packages/backend/server/tests/doc/userspace.spec.ts b/packages/backend/server/src/__tests__/doc/userspace.spec.ts
similarity index 100%
rename from packages/backend/server/tests/doc/userspace.spec.ts
rename to packages/backend/server/src/__tests__/doc/userspace.spec.ts
diff --git a/packages/backend/server/tests/doc/workspace.spec.ts b/packages/backend/server/src/__tests__/doc/workspace.spec.ts
similarity index 98%
rename from packages/backend/server/tests/doc/workspace.spec.ts
rename to packages/backend/server/src/__tests__/doc/workspace.spec.ts
index fafa6b547b..47e6ec7855 100644
--- a/packages/backend/server/tests/doc/workspace.spec.ts
+++ b/packages/backend/server/src/__tests__/doc/workspace.spec.ts
@@ -4,11 +4,11 @@ import test from 'ava';
import * as Sinon from 'sinon';
import { applyUpdate, Doc as YDoc, encodeStateAsUpdate } from 'yjs';
-import { ConfigModule } from '../../src/base/config';
+import { ConfigModule } from '../../base/config';
import {
DocStorageModule,
PgWorkspaceDocStorageAdapter as Adapter,
-} from '../../src/core/doc';
+} from '../../core/doc';
import { createTestingModule, initTestingDB } from '../utils';
let m: TestingModule;
diff --git a/packages/backend/server/tests/feature.spec.ts b/packages/backend/server/src/__tests__/feature.spec.ts
similarity index 96%
rename from packages/backend/server/tests/feature.spec.ts
rename to packages/backend/server/src/__tests__/feature.spec.ts
index 0e9e3192c7..bb3bbac61f 100644
--- a/packages/backend/server/tests/feature.spec.ts
+++ b/packages/backend/server/src/__tests__/feature.spec.ts
@@ -1,18 +1,18 @@
-///
+///
import { INestApplication } from '@nestjs/common';
import type { TestFn } from 'ava';
import ava from 'ava';
-import { Runtime } from '../src/base';
-import { AuthService } from '../src/core/auth/service';
+import { Runtime } from '../base';
+import { AuthService } from '../core/auth/service';
import {
FeatureManagementService,
FeatureModule,
FeatureService,
FeatureType,
-} from '../src/core/features';
-import { WorkspaceResolver } from '../src/core/workspaces/resolvers';
+} from '../core/features';
+import { WorkspaceResolver } from '../core/workspaces/resolvers';
import { createTestingApp } from './utils';
import { WorkspaceResolverMock } from './utils/feature';
diff --git a/packages/backend/server/tests/mailer.e2e.ts b/packages/backend/server/src/__tests__/mailer.e2e.ts
similarity index 90%
rename from packages/backend/server/tests/mailer.e2e.ts
rename to packages/backend/server/src/__tests__/mailer.e2e.ts
index 3b81224168..14d6ad4a6c 100644
--- a/packages/backend/server/tests/mailer.e2e.ts
+++ b/packages/backend/server/src/__tests__/mailer.e2e.ts
@@ -1,4 +1,4 @@
-///
+///
// This test case is for testing the mailer service.
// Please use local SMTP server for testing.
// See: https://github.com/mailhog/MailHog
@@ -10,8 +10,8 @@ import { TestingModule } from '@nestjs/testing';
import type { TestFn } from 'ava';
import ava from 'ava';
-import { ConfigModule } from '../src/base/config';
-import { AuthService } from '../src/core/auth/service';
+import { ConfigModule } from '../base/config';
+import { AuthService } from '../core/auth/service';
import { createTestingModule } from './utils';
const test = ava as TestFn<{
diff --git a/packages/backend/server/tests/mailer.spec.ts b/packages/backend/server/src/__tests__/mailer.spec.ts
similarity index 89%
rename from packages/backend/server/tests/mailer.spec.ts
rename to packages/backend/server/src/__tests__/mailer.spec.ts
index ec2451d1de..8f94d49609 100644
--- a/packages/backend/server/tests/mailer.spec.ts
+++ b/packages/backend/server/src/__tests__/mailer.spec.ts
@@ -3,9 +3,9 @@ import type { TestFn } from 'ava';
import ava from 'ava';
import Sinon from 'sinon';
-import { AppModule } from '../src/app.module';
-import { MailService } from '../src/base/mailer';
-import { FeatureManagementService } from '../src/core/features';
+import { AppModule } from '../app.module';
+import { MailService } from '../base/mailer';
+import { FeatureManagementService } from '../core/features';
import { createTestingApp, createWorkspace, inviteUser, signUp } from './utils';
const test = ava as TestFn<{
app: INestApplication;
diff --git a/packages/backend/server/tests/models/user.spec.ts b/packages/backend/server/src/__tests__/models/user.spec.ts
similarity index 97%
rename from packages/backend/server/tests/models/user.spec.ts
rename to packages/backend/server/src/__tests__/models/user.spec.ts
index 6114f5cc89..aacf4e7756 100644
--- a/packages/backend/server/tests/models/user.spec.ts
+++ b/packages/backend/server/src/__tests__/models/user.spec.ts
@@ -4,9 +4,9 @@ import { PrismaClient } from '@prisma/client';
import ava, { TestFn } from 'ava';
import Sinon from 'sinon';
-import { EmailAlreadyUsed } from '../../src/base';
-import { Permission } from '../../src/core/permission';
-import { UserModel } from '../../src/models/user';
+import { EmailAlreadyUsed } from '../../base';
+import { Permission } from '../../core/permission';
+import { UserModel } from '../../models/user';
import { createTestingModule, initTestingDB } from '../utils';
interface Context {
diff --git a/packages/backend/server/tests/mutex.spec.ts b/packages/backend/server/src/__tests__/mutex.spec.ts
similarity index 95%
rename from packages/backend/server/tests/mutex.spec.ts
rename to packages/backend/server/src/__tests__/mutex.spec.ts
index b60ccdf365..2dbb6fda8d 100644
--- a/packages/backend/server/tests/mutex.spec.ts
+++ b/packages/backend/server/src/__tests__/mutex.spec.ts
@@ -4,8 +4,8 @@ import { TestingModule } from '@nestjs/testing';
import ava, { TestFn } from 'ava';
import Sinon from 'sinon';
-import { Locker, Mutex } from '../src/base/mutex';
-import { SessionRedis } from '../src/base/redis';
+import { Locker, Mutex } from '../base/mutex';
+import { SessionRedis } from '../base/redis';
import { createTestingModule, sleep } from './utils';
const test = ava as TestFn<{
diff --git a/packages/backend/server/tests/nestjs/error-handler.spec.ts b/packages/backend/server/src/__tests__/nestjs/error-handler.spec.ts
similarity index 98%
rename from packages/backend/server/tests/nestjs/error-handler.spec.ts
rename to packages/backend/server/src/__tests__/nestjs/error-handler.spec.ts
index 6dd142b661..e45c67588d 100644
--- a/packages/backend/server/tests/nestjs/error-handler.spec.ts
+++ b/packages/backend/server/src/__tests__/nestjs/error-handler.spec.ts
@@ -20,8 +20,8 @@ import {
AccessDenied,
GatewayErrorWrapper,
UserFriendlyError,
-} from '../../src/base';
-import { Public } from '../../src/core/auth';
+} from '../../base';
+import { Public } from '../../core/auth';
import { createTestingApp } from '../utils';
@Public()
diff --git a/packages/backend/server/tests/nestjs/throttler.spec.ts b/packages/backend/server/src/__tests__/nestjs/throttler.spec.ts
similarity index 97%
rename from packages/backend/server/tests/nestjs/throttler.spec.ts
rename to packages/backend/server/src/__tests__/nestjs/throttler.spec.ts
index 2de7b2fe44..bf1ed49644 100644
--- a/packages/backend/server/tests/nestjs/throttler.spec.ts
+++ b/packages/backend/server/src/__tests__/nestjs/throttler.spec.ts
@@ -1,4 +1,4 @@
-import '../../src/plugins/config';
+import '../../plugins/config';
import {
Controller,
@@ -12,15 +12,15 @@ import ava, { TestFn } from 'ava';
import Sinon from 'sinon';
import request, { type Response } from 'supertest';
-import { AppModule } from '../../src/app.module';
-import { ConfigModule } from '../../src/base/config';
+import { AppModule } from '../../app.module';
+import { ConfigModule } from '../../base/config';
import {
CloudThrottlerGuard,
SkipThrottle,
Throttle,
ThrottlerStorage,
-} from '../../src/base/throttler';
-import { AuthService, Public } from '../../src/core/auth';
+} from '../../base/throttler';
+import { AuthService, Public } from '../../core/auth';
import { createTestingApp, initTestingDB, internalSignIn } from '../utils';
const test = ava as TestFn<{
diff --git a/packages/backend/server/tests/oauth/controller.spec.ts b/packages/backend/server/src/__tests__/oauth/controller.spec.ts
similarity index 93%
rename from packages/backend/server/tests/oauth/controller.spec.ts
rename to packages/backend/server/src/__tests__/oauth/controller.spec.ts
index 051b4f3a9f..54a931ab91 100644
--- a/packages/backend/server/tests/oauth/controller.spec.ts
+++ b/packages/backend/server/src/__tests__/oauth/controller.spec.ts
@@ -1,4 +1,4 @@
-import '../../src/plugins/config';
+import '../../plugins/config';
import { HttpStatus, INestApplication } from '@nestjs/common';
import { PrismaClient } from '@prisma/client';
@@ -6,15 +6,15 @@ import ava, { TestFn } from 'ava';
import Sinon from 'sinon';
import request from 'supertest';
-import { AppModule } from '../../src/app.module';
-import { URLHelper } from '../../src/base';
-import { ConfigModule } from '../../src/base/config';
-import { CurrentUser } from '../../src/core/auth';
-import { AuthService } from '../../src/core/auth/service';
-import { UserService } from '../../src/core/user';
-import { OAuthProviderName } from '../../src/plugins/oauth/config';
-import { GoogleOAuthProvider } from '../../src/plugins/oauth/providers/google';
-import { OAuthService } from '../../src/plugins/oauth/service';
+import { AppModule } from '../../app.module';
+import { URLHelper } from '../../base';
+import { ConfigModule } from '../../base/config';
+import { CurrentUser } from '../../core/auth';
+import { AuthService } from '../../core/auth/service';
+import { UserService } from '../../core/user';
+import { OAuthProviderName } from '../../plugins/oauth/config';
+import { GoogleOAuthProvider } from '../../plugins/oauth/providers/google';
+import { OAuthService } from '../../plugins/oauth/service';
import { createTestingApp, getSession, initTestingDB } from '../utils';
const test = ava as TestFn<{
diff --git a/packages/backend/server/tests/payment/snapshots/service.spec.ts.md b/packages/backend/server/src/__tests__/payment/__snapshots__/service.spec.ts.md
similarity index 96%
rename from packages/backend/server/tests/payment/snapshots/service.spec.ts.md
rename to packages/backend/server/src/__tests__/payment/__snapshots__/service.spec.ts.md
index cbce3754c8..fd46a6d8cb 100644
--- a/packages/backend/server/tests/payment/snapshots/service.spec.ts.md
+++ b/packages/backend/server/src/__tests__/payment/__snapshots__/service.spec.ts.md
@@ -1,4 +1,4 @@
-# Snapshot report for `tests/payment/service.spec.ts`
+# Snapshot report for `src/__tests__/payment/service.spec.ts`
The actual snapshot is saved in `service.spec.ts.snap`.
diff --git a/packages/backend/server/tests/payment/snapshots/service.spec.ts.snap b/packages/backend/server/src/__tests__/payment/__snapshots__/service.spec.ts.snap
similarity index 100%
rename from packages/backend/server/tests/payment/snapshots/service.spec.ts.snap
rename to packages/backend/server/src/__tests__/payment/__snapshots__/service.spec.ts.snap
diff --git a/packages/backend/server/tests/payment/service.spec.ts b/packages/backend/server/src/__tests__/payment/service.spec.ts
similarity index 98%
rename from packages/backend/server/tests/payment/service.spec.ts
rename to packages/backend/server/src/__tests__/payment/service.spec.ts
index 037c243f81..5f94f246fd 100644
--- a/packages/backend/server/tests/payment/service.spec.ts
+++ b/packages/backend/server/src/__tests__/payment/service.spec.ts
@@ -1,4 +1,4 @@
-import '../../src/plugins/payment';
+import '../../plugins/payment';
import { INestApplication } from '@nestjs/common';
import { PrismaClient } from '@prisma/client';
@@ -6,16 +6,13 @@ import ava, { TestFn } from 'ava';
import Sinon from 'sinon';
import Stripe from 'stripe';
-import { AppModule } from '../../src/app.module';
-import { EventEmitter, Runtime } from '../../src/base';
-import { ConfigModule } from '../../src/base/config';
-import { CurrentUser } from '../../src/core/auth';
-import { AuthService } from '../../src/core/auth/service';
-import {
- EarlyAccessType,
- FeatureManagementService,
-} from '../../src/core/features';
-import { SubscriptionService } from '../../src/plugins/payment/service';
+import { AppModule } from '../../app.module';
+import { EventEmitter, Runtime } from '../../base';
+import { ConfigModule } from '../../base/config';
+import { CurrentUser } from '../../core/auth';
+import { AuthService } from '../../core/auth/service';
+import { EarlyAccessType, FeatureManagementService } from '../../core/features';
+import { SubscriptionService } from '../../plugins/payment/service';
import {
CouponType,
encodeLookupKey,
@@ -23,7 +20,7 @@ import {
SubscriptionRecurring,
SubscriptionStatus,
SubscriptionVariant,
-} from '../../src/plugins/payment/types';
+} from '../../plugins/payment/types';
import { createTestingApp, initTestingDB } from '../utils';
const PRO_MONTHLY = `${SubscriptionPlan.Pro}_${SubscriptionRecurring.Monthly}`;
diff --git a/packages/backend/server/tests/quota.spec.ts b/packages/backend/server/src/__tests__/quota.spec.ts
similarity index 95%
rename from packages/backend/server/tests/quota.spec.ts
rename to packages/backend/server/src/__tests__/quota.spec.ts
index a5e91085d3..6686f3e594 100644
--- a/packages/backend/server/tests/quota.spec.ts
+++ b/packages/backend/server/src/__tests__/quota.spec.ts
@@ -1,20 +1,20 @@
-///
+///
import { TestingModule } from '@nestjs/testing';
import type { TestFn } from 'ava';
import ava from 'ava';
-import { AuthService } from '../src/core/auth';
+import { AuthService } from '../core/auth';
import {
QuotaManagementService,
QuotaModule,
QuotaService,
QuotaType,
-} from '../src/core/quota';
-import { OneGB, OneMB } from '../src/core/quota/constant';
-import { FreePlan, ProPlan } from '../src/core/quota/schema';
-import { StorageModule, WorkspaceBlobStorage } from '../src/core/storage';
-import { WorkspaceResolver } from '../src/core/workspaces/resolvers';
+} from '../core/quota';
+import { OneGB, OneMB } from '../core/quota/constant';
+import { FreePlan, ProPlan } from '../core/quota/schema';
+import { StorageModule, WorkspaceBlobStorage } from '../core/storage';
+import { WorkspaceResolver } from '../core/workspaces/resolvers';
import { createTestingModule } from './utils';
import { WorkspaceResolverMock } from './utils/feature';
diff --git a/packages/backend/server/tests/sync/gateway.spec.ts b/packages/backend/server/src/__tests__/sync/gateway.spec.ts
similarity index 100%
rename from packages/backend/server/tests/sync/gateway.spec.ts
rename to packages/backend/server/src/__tests__/sync/gateway.spec.ts
diff --git a/packages/backend/server/tests/team.e2e.ts b/packages/backend/server/src/__tests__/team.e2e.ts
similarity index 97%
rename from packages/backend/server/tests/team.e2e.ts
rename to packages/backend/server/src/__tests__/team.e2e.ts
index b770d5c2d3..203889c715 100644
--- a/packages/backend/server/tests/team.e2e.ts
+++ b/packages/backend/server/src/__tests__/team.e2e.ts
@@ -1,4 +1,4 @@
-///
+///
import { randomUUID } from 'node:crypto';
@@ -9,17 +9,13 @@ import type { TestFn } from 'ava';
import ava from 'ava';
import Sinon from 'sinon';
-import { AppModule } from '../src/app.module';
-import { EventEmitter } from '../src/base';
-import { AuthService } from '../src/core/auth';
-import { DocContentService } from '../src/core/doc-renderer';
-import { Permission, PermissionService } from '../src/core/permission';
-import {
- QuotaManagementService,
- QuotaService,
- QuotaType,
-} from '../src/core/quota';
-import { WorkspaceType } from '../src/core/workspaces';
+import { AppModule } from '../app.module';
+import { EventEmitter } from '../base';
+import { AuthService } from '../core/auth';
+import { DocContentService } from '../core/doc-renderer';
+import { Permission, PermissionService } from '../core/permission';
+import { QuotaManagementService, QuotaService, QuotaType } from '../core/quota';
+import { WorkspaceType } from '../core/workspaces';
import {
acceptInviteById,
approveMember,
diff --git a/packages/backend/server/tests/user.e2e.ts b/packages/backend/server/src/__tests__/user.e2e.ts
similarity index 97%
rename from packages/backend/server/tests/user.e2e.ts
rename to packages/backend/server/src/__tests__/user.e2e.ts
index f4c61909a6..ef8c4fc4b5 100644
--- a/packages/backend/server/tests/user.e2e.ts
+++ b/packages/backend/server/src/__tests__/user.e2e.ts
@@ -2,7 +2,7 @@ import type { INestApplication } from '@nestjs/common';
import test from 'ava';
import request from 'supertest';
-import { AppModule } from '../src/app.module';
+import { AppModule } from '../app.module';
import { createTestingApp, currentUser, signUp } from './utils';
let app: INestApplication;
diff --git a/packages/backend/server/tests/user/user.e2e.ts b/packages/backend/server/src/__tests__/user/user.e2e.ts
similarity index 95%
rename from packages/backend/server/tests/user/user.e2e.ts
rename to packages/backend/server/src/__tests__/user/user.e2e.ts
index ae3b430d0a..ee6856eee1 100644
--- a/packages/backend/server/tests/user/user.e2e.ts
+++ b/packages/backend/server/src/__tests__/user/user.e2e.ts
@@ -3,8 +3,8 @@ import type { TestFn } from 'ava';
import ava from 'ava';
import request from 'supertest';
-import { AppModule } from '../../src/app.module';
-import { AuthService, CurrentUser } from '../../src/core/auth';
+import { AppModule } from '../../app.module';
+import { AuthService, CurrentUser } from '../../core/auth';
import { createTestingApp, gql, internalSignIn } from '../utils';
const test = ava as TestFn<{
diff --git a/packages/backend/server/tests/utils/blobs.ts b/packages/backend/server/src/__tests__/utils/blobs.ts
similarity index 100%
rename from packages/backend/server/tests/utils/blobs.ts
rename to packages/backend/server/src/__tests__/utils/blobs.ts
diff --git a/packages/backend/server/tests/utils/common.ts b/packages/backend/server/src/__tests__/utils/common.ts
similarity index 100%
rename from packages/backend/server/tests/utils/common.ts
rename to packages/backend/server/src/__tests__/utils/common.ts
diff --git a/packages/backend/server/tests/utils/copilot.ts b/packages/backend/server/src/__tests__/utils/copilot.ts
similarity index 98%
rename from packages/backend/server/tests/utils/copilot.ts
rename to packages/backend/server/src/__tests__/utils/copilot.ts
index e88971ce30..b78b256425 100644
--- a/packages/backend/server/tests/utils/copilot.ts
+++ b/packages/backend/server/src/__tests__/utils/copilot.ts
@@ -6,7 +6,7 @@ import request from 'supertest';
import {
DEFAULT_DIMENSIONS,
OpenAIProvider,
-} from '../../src/plugins/copilot/providers/openai';
+} from '../../plugins/copilot/providers/openai';
import {
CopilotCapability,
CopilotChatOptions,
@@ -19,13 +19,13 @@ import {
CopilotTextToTextProvider,
PromptConfig,
PromptMessage,
-} from '../../src/plugins/copilot/types';
-import { NodeExecutorType } from '../../src/plugins/copilot/workflow/executor';
+} from '../../plugins/copilot/types';
+import { NodeExecutorType } from '../../plugins/copilot/workflow/executor';
import {
WorkflowGraph,
WorkflowNodeType,
WorkflowParams,
-} from '../../src/plugins/copilot/workflow/types';
+} from '../../plugins/copilot/workflow/types';
import { gql } from './common';
import { handleGraphQLError, sleep } from './utils';
diff --git a/packages/backend/server/tests/utils/feature.ts b/packages/backend/server/src/__tests__/utils/feature.ts
similarity index 85%
rename from packages/backend/server/tests/utils/feature.ts
rename to packages/backend/server/src/__tests__/utils/feature.ts
index 3b25b48670..af728f6df0 100644
--- a/packages/backend/server/tests/utils/feature.ts
+++ b/packages/backend/server/src/__tests__/utils/feature.ts
@@ -1,8 +1,8 @@
import { Injectable } from '@nestjs/common';
import { PrismaClient, WorkspaceMemberStatus } from '@prisma/client';
-import { Permission } from '../../src/core/permission';
-import { UserType } from '../../src/core/user/types';
+import { Permission } from '../../core/permission';
+import { UserType } from '../../core/user/types';
@Injectable()
export class WorkspaceResolverMock {
diff --git a/packages/backend/server/tests/utils/index.ts b/packages/backend/server/src/__tests__/utils/index.ts
similarity index 100%
rename from packages/backend/server/tests/utils/index.ts
rename to packages/backend/server/src/__tests__/utils/index.ts
diff --git a/packages/backend/server/tests/utils/invite.ts b/packages/backend/server/src/__tests__/utils/invite.ts
similarity index 99%
rename from packages/backend/server/tests/utils/invite.ts
rename to packages/backend/server/src/__tests__/utils/invite.ts
index 4d99d1fc90..83b0adfacb 100644
--- a/packages/backend/server/tests/utils/invite.ts
+++ b/packages/backend/server/src/__tests__/utils/invite.ts
@@ -1,7 +1,7 @@
import type { INestApplication } from '@nestjs/common';
import request from 'supertest';
-import type { InvitationType } from '../../src/core/workspaces';
+import type { InvitationType } from '../../core/workspaces';
import { gql } from './common';
export async function inviteUser(
diff --git a/packages/backend/server/tests/utils/user.ts b/packages/backend/server/src/__tests__/utils/user.ts
similarity index 97%
rename from packages/backend/server/tests/utils/user.ts
rename to packages/backend/server/src/__tests__/utils/user.ts
index 79b793a873..5d1140c524 100644
--- a/packages/backend/server/tests/utils/user.ts
+++ b/packages/backend/server/src/__tests__/utils/user.ts
@@ -5,9 +5,9 @@ import {
AuthService,
type ClientTokenType,
type CurrentUser,
-} from '../../src/core/auth';
-import { sessionUser } from '../../src/core/auth/service';
-import { UserService, type UserType } from '../../src/core/user';
+} from '../../core/auth';
+import { sessionUser } from '../../core/auth/service';
+import { UserService, type UserType } from '../../core/user';
import { gql } from './common';
export type UserAuthedType = UserType & { token: ClientTokenType };
diff --git a/packages/backend/server/tests/utils/utils.ts b/packages/backend/server/src/__tests__/utils/utils.ts
similarity index 91%
rename from packages/backend/server/tests/utils/utils.ts
rename to packages/backend/server/src/__tests__/utils/utils.ts
index 71a11489b0..1884bfe7cf 100644
--- a/packages/backend/server/tests/utils/utils.ts
+++ b/packages/backend/server/src/__tests__/utils/utils.ts
@@ -8,12 +8,12 @@ import graphqlUploadExpress from 'graphql-upload/graphqlUploadExpress.mjs';
import type { Response } from 'supertest';
import supertest from 'supertest';
-import { AppModule, FunctionalityModules } from '../../src/app.module';
-import { GlobalExceptionFilter, Runtime } from '../../src/base';
-import { GqlModule } from '../../src/base/graphql';
-import { AuthGuard, AuthModule } from '../../src/core/auth';
-import { UserFeaturesInit1698652531198 } from '../../src/data/migrations/1698652531198-user-features-init';
-import { ModelModules } from '../../src/models';
+import { AppModule, FunctionalityModules } from '../../app.module';
+import { GlobalExceptionFilter, Runtime } from '../../base';
+import { GqlModule } from '../../base/graphql';
+import { AuthGuard, AuthModule } from '../../core/auth';
+import { UserFeaturesInit1698652531198 } from '../../data/migrations/1698652531198-user-features-init';
+import { ModelModules } from '../../models';
export type PermissionEnum = 'Owner' | 'Admin' | 'Write' | 'Read';
diff --git a/packages/backend/server/tests/utils/workspace.ts b/packages/backend/server/src/__tests__/utils/workspace.ts
similarity index 98%
rename from packages/backend/server/tests/utils/workspace.ts
rename to packages/backend/server/src/__tests__/utils/workspace.ts
index 8fcdde1553..e63b8fb685 100644
--- a/packages/backend/server/tests/utils/workspace.ts
+++ b/packages/backend/server/src/__tests__/utils/workspace.ts
@@ -1,7 +1,7 @@
import type { INestApplication } from '@nestjs/common';
import request from 'supertest';
-import type { WorkspaceType } from '../../src/core/workspaces';
+import type { WorkspaceType } from '../../core/workspaces';
import { gql } from './common';
import { PermissionEnum } from './utils';
diff --git a/packages/backend/server/tests/workspace-invite.e2e.ts b/packages/backend/server/src/__tests__/workspace-invite.e2e.ts
similarity index 97%
rename from packages/backend/server/tests/workspace-invite.e2e.ts
rename to packages/backend/server/src/__tests__/workspace-invite.e2e.ts
index 5274e26e49..0e21adc6ad 100644
--- a/packages/backend/server/tests/workspace-invite.e2e.ts
+++ b/packages/backend/server/src/__tests__/workspace-invite.e2e.ts
@@ -7,10 +7,10 @@ import { PrismaClient } from '@prisma/client';
import type { TestFn } from 'ava';
import ava from 'ava';
-import { AppModule } from '../src/app.module';
-import { MailService } from '../src/base/mailer';
-import { AuthService } from '../src/core/auth/service';
-import { UserService } from '../src/core/user';
+import { AppModule } from '../app.module';
+import { MailService } from '../base/mailer';
+import { AuthService } from '../core/auth/service';
+import { UserService } from '../core/user';
import {
acceptInviteById,
createTestingApp,
diff --git a/packages/backend/server/tests/workspace.e2e.ts b/packages/backend/server/src/__tests__/workspace.e2e.ts
similarity index 99%
rename from packages/backend/server/tests/workspace.e2e.ts
rename to packages/backend/server/src/__tests__/workspace.e2e.ts
index 9738509d50..0ffa0786cd 100644
--- a/packages/backend/server/tests/workspace.e2e.ts
+++ b/packages/backend/server/src/__tests__/workspace.e2e.ts
@@ -4,7 +4,7 @@ import type { TestFn } from 'ava';
import ava from 'ava';
import request from 'supertest';
-import { AppModule } from '../src/app.module';
+import { AppModule } from '../app.module';
import {
acceptInviteById,
createTestingApp,
diff --git a/packages/backend/server/tests/workspace/blobs.e2e.ts b/packages/backend/server/src/__tests__/workspace/blobs.e2e.ts
similarity index 96%
rename from packages/backend/server/tests/workspace/blobs.e2e.ts
rename to packages/backend/server/src/__tests__/workspace/blobs.e2e.ts
index 08dc6947fc..873c8c46ca 100644
--- a/packages/backend/server/tests/workspace/blobs.e2e.ts
+++ b/packages/backend/server/src/__tests__/workspace/blobs.e2e.ts
@@ -2,9 +2,9 @@ import type { INestApplication } from '@nestjs/common';
import test from 'ava';
import request from 'supertest';
-import { AppModule } from '../../src/app.module';
-import { FeatureManagementService, FeatureType } from '../../src/core/features';
-import { QuotaService, QuotaType } from '../../src/core/quota';
+import { AppModule } from '../../app.module';
+import { FeatureManagementService, FeatureType } from '../../core/features';
+import { QuotaService, QuotaType } from '../../core/quota';
import {
collectAllBlobSizes,
createTestingApp,
diff --git a/packages/backend/server/tests/workspace/controller.spec.ts b/packages/backend/server/src/__tests__/workspace/controller.spec.ts
similarity index 95%
rename from packages/backend/server/tests/workspace/controller.spec.ts
rename to packages/backend/server/src/__tests__/workspace/controller.spec.ts
index 69a60e516d..6d60f139fe 100644
--- a/packages/backend/server/tests/workspace/controller.spec.ts
+++ b/packages/backend/server/src/__tests__/workspace/controller.spec.ts
@@ -6,11 +6,11 @@ import ava, { TestFn } from 'ava';
import Sinon from 'sinon';
import request from 'supertest';
-import { AppModule } from '../../src/app.module';
-import { CurrentUser } from '../../src/core/auth';
-import { AuthService } from '../../src/core/auth/service';
-import { PgWorkspaceDocStorageAdapter } from '../../src/core/doc';
-import { WorkspaceBlobStorage } from '../../src/core/storage';
+import { AppModule } from '../../app.module';
+import { CurrentUser } from '../../core/auth';
+import { AuthService } from '../../core/auth/service';
+import { PgWorkspaceDocStorageAdapter } from '../../core/doc';
+import { WorkspaceBlobStorage } from '../../core/storage';
import { createTestingApp, internalSignIn } from '../utils';
const test = ava as TestFn<{
diff --git a/packages/backend/server/tsconfig.json b/packages/backend/server/tsconfig.json
index 8636e9fc63..2ef704f8d2 100644
--- a/packages/backend/server/tsconfig.json
+++ b/packages/backend/server/tsconfig.json
@@ -13,6 +13,7 @@
"references": [
{ "path": "../../../tests/kit" },
{ "path": "../../../tools/cli" },
+ { "path": "../../../tools/utils" },
{ "path": "../native" }
]
}
diff --git a/packages/backend/server/tsconfig.node.json b/packages/backend/server/tsconfig.node.json
deleted file mode 100644
index e9b94c81b5..0000000000
--- a/packages/backend/server/tsconfig.node.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "extends": "./tsconfig.json",
- "compilerOptions": {
- "allowJs": true,
- "rootDir": ".",
- "outDir": "./lib",
- "tsBuildInfoFile": "./lib/tsconfig.tsbuildinfo"
- },
- "include": ["./scripts", "./tests"]
-}
diff --git a/tools/utils/src/workspace.gen.ts b/tools/utils/src/workspace.gen.ts
index 249ff093b2..92cec7e22f 100644
--- a/tools/utils/src/workspace.gen.ts
+++ b/tools/utils/src/workspace.gen.ts
@@ -451,6 +451,7 @@ export const PackageList = [
workspaceDependencies: [
'tests/kit',
'tools/cli',
+ 'tools/utils',
'packages/backend/native',
],
},
diff --git a/yarn.lock b/yarn.lock
index 401df040e9..e1a5374248 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -751,6 +751,7 @@ __metadata:
dependencies:
"@affine-test/kit": "workspace:*"
"@affine-tools/cli": "workspace:*"
+ "@affine-tools/utils": "workspace:*"
"@affine/server-native": "workspace:*"
"@apollo/server": "npm:^4.11.2"
"@aws-sdk/client-s3": "npm:^3.709.0"