chore: create-mock-database (#6522)

* chore: create-mock-database

* fix: mockDatabase
This commit is contained in:
chenos 2025-03-21 12:14:31 +08:00 committed by GitHub
parent 68d2ae1c3d
commit 2e737f74fd
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
124 changed files with 386 additions and 412 deletions

View File

@ -7,7 +7,7 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import { mockDatabase } from '@nocobase/database'; import { createMockDatabase, mockDatabase } from '@nocobase/database';
import { uid } from '@nocobase/utils'; import { uid } from '@nocobase/utils';
import axios from 'axios'; import axios from 'axios';
import execa from 'execa'; import execa from 'execa';
@ -64,7 +64,7 @@ const createDatabase = async () => {
if (process.env.DB_DIALECT === 'sqlite') { if (process.env.DB_DIALECT === 'sqlite') {
return 'nocobase'; return 'nocobase';
} }
const db = mockDatabase(); const db = await createMockDatabase();
const name = `d_${uid()}`; const name = `d_${uid()}`;
await db.sequelize.query(`CREATE DATABASE ${name}`); await db.sequelize.query(`CREATE DATABASE ${name}`);
await db.close(); await db.close();

View File

@ -7,10 +7,10 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import { createMockServer, mockDatabase, supertest } from '@nocobase/test';
import { SequelizeDataSource } from '../sequelize-data-source';
import { vi } from 'vitest';
import { DataSourceManager } from '@nocobase/data-source-manager'; import { DataSourceManager } from '@nocobase/data-source-manager';
import { createMockDatabase, createMockServer, mockDatabase, supertest } from '@nocobase/test';
import { vi } from 'vitest';
import { SequelizeDataSource } from '../sequelize-data-source';
describe('example', () => { describe('example', () => {
test.skip('case1', async () => { test.skip('case1', async () => {
@ -41,7 +41,7 @@ describe('example', () => {
name: 'test2', name: 'test2',
}); });
const database = mockDatabase({ const database = await createMockDatabase({
tablePrefix: 'ds1_', tablePrefix: 'ds1_',
}); });
await database.clean({ drop: true }); await database.clean({ drop: true });
@ -82,7 +82,7 @@ describe('example', () => {
name: 'update-filter', name: 'update-filter',
}); });
const database = mockDatabase({ const database = await createMockDatabase({
tablePrefix: 'ds1_', tablePrefix: 'ds1_',
}); });
@ -128,7 +128,7 @@ describe('example', () => {
name: 'update-filter', name: 'update-filter',
}); });
const database = mockDatabase({ const database = await createMockDatabase({
tablePrefix: 'ds1_', tablePrefix: 'ds1_',
}); });
@ -198,7 +198,7 @@ describe('example', () => {
// it should be called on main datasource // it should be called on main datasource
expect(hook).toBeCalledTimes(1); expect(hook).toBeCalledTimes(1);
const database = mockDatabase({ const database = await createMockDatabase({
tablePrefix: 'ds1_', tablePrefix: 'ds1_',
}); });

View File

@ -7,7 +7,7 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import { mockDatabase } from '@nocobase/test'; import { createMockDatabase, mockDatabase } from '@nocobase/test';
import Koa from 'koa'; import Koa from 'koa';
import bodyParser from 'koa-bodyparser'; import bodyParser from 'koa-bodyparser';
import supertest from 'supertest'; import supertest from 'supertest';
@ -24,7 +24,7 @@ describe('example', () => {
await next(); await next();
}); });
app.use(dsm.middleware()); app.use(dsm.middleware());
const database = mockDatabase({ const database = await createMockDatabase({
tablePrefix: 'ds1_', tablePrefix: 'ds1_',
}); });
await database.clean({ drop: true }); await database.clean({ drop: true });

View File

@ -7,13 +7,13 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import { Database } from '../../database'; import { Database, createMockDatabase } from '@nocobase/database';
import { mockDatabase } from '../index';
describe('association references', () => { describe('association references', () => {
let db: Database; let db: Database;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase(); db = await createMockDatabase();
await db.clean({ drop: true }); await db.clean({ drop: true });
}); });

View File

@ -7,13 +7,13 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import { Database, mockDatabase } from '@nocobase/database'; import { createMockDatabase, Database } from '@nocobase/database';
describe('association target key', async () => { describe('association target key', async () => {
let db: Database; let db: Database;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase(); db = await createMockDatabase();
await db.clean({ drop: true }); await db.clean({ drop: true });
}); });

View File

@ -7,14 +7,13 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import { Database } from '../database'; import { createMockDatabase, Database } from '@nocobase/database';
import { mockDatabase } from './index';
describe.skipIf(process.env['DB_DIALECT'] === 'sqlite')('collection', () => { describe.skipIf(process.env['DB_DIALECT'] === 'sqlite')('collection', () => {
let db: Database; let db: Database;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase({ db = await createMockDatabase({
logging: console.log, logging: console.log,
}); });

View File

@ -7,16 +7,14 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import { Collection, Database, createMockDatabase } from '@nocobase/database';
import { vi } from 'vitest'; import { vi } from 'vitest';
import Database from '../database';
import { mockDatabase } from './index';
import { Collection } from '../collection';
describe('collection factory', function () { describe('collection factory', function () {
let db: Database; let db: Database;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase(); db = await createMockDatabase();
await db.clean({ drop: true }); await db.clean({ drop: true });
}); });

View File

@ -7,9 +7,7 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import { Collection } from '../collection'; import { Collection, Database, createMockDatabase } from '@nocobase/database';
import { Database } from '../database';
import { mockDatabase } from './index';
import { IdentifierError } from '../errors/identifier-error'; import { IdentifierError } from '../errors/identifier-error';
const pgOnly = () => (process.env.DB_DIALECT == 'postgres' ? it : it.skip); const pgOnly = () => (process.env.DB_DIALECT == 'postgres' ? it : it.skip);
@ -17,7 +15,7 @@ describe('collection', () => {
let db: Database; let db: Database;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase(); db = await createMockDatabase();
await db.clean({ drop: true }); await db.clean({ drop: true });
}); });
@ -265,7 +263,7 @@ describe('collection sync', () => {
let db: Database; let db: Database;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase(); db = await createMockDatabase();
await db.clean({ drop: true }); await db.clean({ drop: true });
}); });

View File

@ -7,15 +7,14 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import { mockDatabase } from './index'; import { Database, createMockDatabase } from '@nocobase/database';
import path from 'path'; import path from 'path';
import Database from '../database';
describe('database', () => { describe('database', () => {
let db: Database; let db: Database;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase(); db = await createMockDatabase();
await db.clean({ drop: true }); await db.clean({ drop: true });
}); });

View File

@ -7,17 +7,15 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import { vi } from 'vitest'; import { ArrayFieldRepository, createMockDatabase, Database, Model } from '@nocobase/database';
import path from 'path'; import path from 'path';
import { Database, Model } from '..'; import { vi } from 'vitest';
import { ArrayFieldRepository } from '../field-repository/array-field-repository';
import { mockDatabase } from './index';
describe('database', () => { describe('database', () => {
let db: Database; let db: Database;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase(); db = await createMockDatabase();
await db.clean({ drop: true }); await db.clean({ drop: true });
}); });

View File

@ -7,15 +7,13 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import { mockDatabase } from '../'; import { BaseDialect, Database, createMockDatabase } from '@nocobase/database';
import { Database } from '../../database';
import { BaseDialect } from '../../dialects/base-dialect';
describe('dialect extend', () => { describe('dialect extend', () => {
let db: Database; let db: Database;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase(); db = await createMockDatabase();
await db.clean({ drop: true }); await db.clean({ drop: true });
}); });

View File

@ -7,13 +7,13 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import Database, { mockDatabase } from '@nocobase/database'; import Database, { createMockDatabase } from '@nocobase/database';
import { EagerLoadingTree } from '../../eager-loading/eager-loading-tree'; import { EagerLoadingTree } from '../../eager-loading/eager-loading-tree';
describe('Eager loading tree', () => { describe('Eager loading tree', () => {
let db: Database; let db: Database;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase({ db = await createMockDatabase({
tablePrefix: '', tablePrefix: '',
}); });

View File

@ -7,15 +7,13 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import { mockDatabase } from '../'; import { Database, Model, createMockDatabase } from '@nocobase/database';
import { Database } from '../../database';
import { Model } from '../../model';
describe('hidden field options', () => { describe('hidden field options', () => {
let db: Database; let db: Database;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase(); db = await createMockDatabase();
await db.clean({ drop: true }); await db.clean({ drop: true });
}); });

View File

@ -7,15 +7,14 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import { mockDatabase } from '../'; import { Database, createMockDatabase } from '@nocobase/database';
import { Database } from '../../database';
import { md5 } from '../../utils'; import { md5 } from '../../utils';
describe('index field options', () => { describe('index field options', () => {
let db: Database; let db: Database;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase(); db = await createMockDatabase();
await db.clean({ drop: true }); await db.clean({ drop: true });
}); });

View File

@ -7,8 +7,7 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import { mockDatabase } from '@nocobase/test'; import { BelongsToManyRepository, Database, createMockDatabase } from '@nocobase/database';
import { BelongsToManyRepository, Database } from '../../index';
describe('associated field order', () => { describe('associated field order', () => {
let db: Database; let db: Database;
@ -18,7 +17,7 @@ describe('associated field order', () => {
}); });
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase(); db = await createMockDatabase();
await db.clean({ drop: true }); await db.clean({ drop: true });
db.collection({ db.collection({

View File

@ -7,9 +7,7 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import { mockDatabase } from '../index'; import { ArrayFieldRepository, Database, createMockDatabase } from '@nocobase/database';
import Database from '../../database';
import { ArrayFieldRepository } from '../../field-repository/array-field-repository';
describe('Array field repository', () => { describe('Array field repository', () => {
let db: Database; let db: Database;
@ -17,7 +15,7 @@ describe('Array field repository', () => {
let TestCollection; let TestCollection;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase(); db = await createMockDatabase();
await db.clean({ drop: true }); await db.clean({ drop: true });
TestCollection = db.collection({ TestCollection = db.collection({
name: 'test', name: 'test',

View File

@ -7,14 +7,13 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import { mockDatabase } from '../'; import { Database, createMockDatabase } from '@nocobase/database';
import { Database } from '../../database';
describe('array field', () => { describe('array field', () => {
let db: Database; let db: Database;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase(); db = await createMockDatabase();
await db.clean({ drop: true }); await db.clean({ drop: true });
}); });

View File

@ -7,15 +7,14 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import { Database } from '../../database'; import { Database, createMockDatabase } from '@nocobase/database';
import { mockDatabase } from '../';
import { IdentifierError } from '../../errors/identifier-error'; import { IdentifierError } from '../../errors/identifier-error';
describe('belongs to field', () => { describe('belongs to field', () => {
let db: Database; let db: Database;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase(); db = await createMockDatabase();
await db.clean({ drop: true }); await db.clean({ drop: true });
}); });

View File

@ -7,15 +7,14 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import { mockDatabase } from '../'; import { Database, createMockDatabase } from '@nocobase/database';
import { Database } from '../../database';
import { IdentifierError } from '../../errors/identifier-error'; import { IdentifierError } from '../../errors/identifier-error';
describe('belongs to many field', () => { describe('belongs to many field', () => {
let db: Database; let db: Database;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase(); db = await createMockDatabase();
await db.clean({ drop: true }); await db.clean({ drop: true });
}); });

View File

@ -7,15 +7,14 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import { createMockDatabase, Database } from '@nocobase/database';
import { DataTypes } from 'sequelize'; import { DataTypes } from 'sequelize';
import { mockDatabase } from '../';
import { Database } from '../../';
describe('context field', () => { describe('context field', () => {
let db: Database; let db: Database;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase(); db = await createMockDatabase();
await db.clean({ drop: true }); await db.clean({ drop: true });
}); });

View File

@ -7,13 +7,13 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import { Database, mockDatabase } from '@nocobase/database'; import { createMockDatabase, Database } from '@nocobase/database';
describe('date only', () => { describe('date only', () => {
let db: Database; let db: Database;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase({ db = await createMockDatabase({
timezone: '+08:00', timezone: '+08:00',
}); });
await db.clean({ drop: true }); await db.clean({ drop: true });

View File

@ -7,14 +7,14 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import { Database, mockDatabase } from '@nocobase/database'; import { createMockDatabase, Database } from '@nocobase/database';
import { sleep } from '@nocobase/test'; import { sleep } from '@nocobase/test';
describe('datetime no tz field', () => { describe('datetime no tz field', () => {
let db: Database; let db: Database;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase({ db = await createMockDatabase({
timezone: '+01:00', timezone: '+01:00',
}); });
await db.clean({ drop: true }); await db.clean({ drop: true });

View File

@ -7,15 +7,13 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import { mockDatabase } from '../'; import { Database, Repository, createMockDatabase } from '@nocobase/database';
import { Database } from '../../database';
import { Repository } from '../../repository';
describe('timezone', () => { describe('timezone', () => {
let db: Database; let db: Database;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase({ db = await createMockDatabase({
timezone: '+08:00', timezone: '+08:00',
}); });
await db.clean({ drop: true }); await db.clean({ drop: true });
@ -119,7 +117,7 @@ describe('date-field', () => {
let repository: Repository; let repository: Repository;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase(); db = await createMockDatabase();
await db.clean({ drop: true }); await db.clean({ drop: true });
db.collection({ db.collection({
name: 'tests', name: 'tests',

View File

@ -7,14 +7,13 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import { EncryptionField } from '../../fields/encryption-field'; import { createMockDatabase, EncryptionField, MockDatabase } from '@nocobase/database';
import { mockDatabase, MockDatabase } from '../../mock-database';
describe('encryption field', () => { describe('encryption field', () => {
let db: MockDatabase; let db: MockDatabase;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase(); db = await createMockDatabase();
await db.clean({ drop: true }); await db.clean({ drop: true });
db.registerFieldTypes({ db.registerFieldTypes({
encryption: EncryptionField, encryption: EncryptionField,

View File

@ -7,15 +7,14 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import { Database } from '../../database'; import { Database, createMockDatabase } from '@nocobase/database';
import { mockDatabase } from '../';
import { IdentifierError } from '../../errors/identifier-error'; import { IdentifierError } from '../../errors/identifier-error';
describe('has many field', () => { describe('has many field', () => {
let db: Database; let db: Database;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase(); db = await createMockDatabase();
await db.clean({ drop: true }); await db.clean({ drop: true });
}); });

View File

@ -7,15 +7,14 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import { Database } from '../../database'; import { Database, createMockDatabase } from '@nocobase/database';
import { mockDatabase } from '../';
import { IdentifierError } from '../../errors/identifier-error'; import { IdentifierError } from '../../errors/identifier-error';
describe('has many field', () => { describe('has many field', () => {
let db: Database; let db: Database;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase(); db = await createMockDatabase();
await db.clean({ drop: true }); await db.clean({ drop: true });
}); });

View File

@ -7,14 +7,13 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import { mockDatabase } from '../'; import { Database, createMockDatabase } from '@nocobase/database';
import { Database } from '../../database';
describe('nanoid field', () => { describe('nanoid field', () => {
let db: Database; let db: Database;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase(); db = await createMockDatabase();
await db.clean({ drop: true }); await db.clean({ drop: true });
}); });

View File

@ -7,14 +7,13 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import { mockDatabase } from '../'; import { createMockDatabase, Database, PasswordField } from '@nocobase/database';
import { Database, PasswordField } from '../../';
describe('password field', () => { describe('password field', () => {
let db: Database; let db: Database;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase(); db = await createMockDatabase();
await db.clean({ drop: true }); await db.clean({ drop: true });
}); });

View File

@ -7,14 +7,13 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import { mockDatabase } from '../'; import { Database, createMockDatabase } from '@nocobase/database';
import { Database } from '../../database';
describe('set field', () => { describe('set field', () => {
let db: Database; let db: Database;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase(); db = await createMockDatabase();
await db.clean({ drop: true }); await db.clean({ drop: true });
}); });

View File

@ -7,14 +7,13 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import { Database } from '../../database'; import { Database, createMockDatabase } from '@nocobase/database';
import { mockDatabase } from '../';
describe('string field', () => { describe('string field', () => {
let db: Database; let db: Database;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase(); db = await createMockDatabase();
await db.clean({ drop: true }); await db.clean({ drop: true });
}); });

View File

@ -7,14 +7,13 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import { mockDatabase } from '../'; import { Database, createMockDatabase } from '@nocobase/database';
import { Database } from '../../database';
describe('text field', () => { describe('text field', () => {
let db: Database; let db: Database;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase(); db = await createMockDatabase();
await db.clean({ drop: true }); await db.clean({ drop: true });
}); });

View File

@ -7,14 +7,14 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import { Database, mockDatabase } from '@nocobase/database'; import { Database, createMockDatabase } from '@nocobase/database';
import moment from 'moment'; import moment from 'moment';
describe('unix timestamp field', () => { describe('unix timestamp field', () => {
let db: Database; let db: Database;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase(); db = await createMockDatabase();
await db.clean({ drop: true }); await db.clean({ drop: true });
}); });

View File

@ -7,14 +7,13 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import { mockDatabase } from '../'; import { Database, createMockDatabase } from '@nocobase/database';
import { Database } from '../../database';
describe('uuid field', () => { describe('uuid field', () => {
let db: Database; let db: Database;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase(); db = await createMockDatabase();
await db.clean({ drop: true }); await db.clean({ drop: true });
}); });

View File

@ -7,15 +7,13 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import { Database } from '..'; import { createMockDatabase, Database, filterMatch } from '@nocobase/database';
import { filterMatch } from '../filter-match';
import { mockDatabase } from './index';
describe('filterMatch', () => { describe('filterMatch', () => {
let db: Database; let db: Database;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase(); db = await createMockDatabase();
await db.clean({ drop: true }); await db.clean({ drop: true });
}); });

View File

@ -7,16 +7,14 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import { Database, FilterParser, createMockDatabase } from '@nocobase/database';
import { Op } from 'sequelize'; import { Op } from 'sequelize';
import { Database } from '../database';
import FilterParser from '../filter-parser';
import { mockDatabase } from './index';
describe('filter by related', () => { describe('filter by related', () => {
let db: Database; let db: Database;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase(); db = await createMockDatabase();
await db.clean({ drop: true }); await db.clean({ drop: true });
db.collection({ db.collection({
name: 'users', name: 'users',

View File

@ -7,13 +7,13 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import Database, { mockDatabase } from '../../index'; import Database, { createMockDatabase } from '@nocobase/database';
describe('multi filter target key', () => { describe('multi filter target key', () => {
let db: Database; let db: Database;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase(); db = await createMockDatabase();
await db.clean({ drop: true }); await db.clean({ drop: true });
}); });

View File

@ -1,10 +1,19 @@
import Database, { mockDatabase } from '@nocobase/database'; /**
* This file is part of the NocoBase (R) project.
* Copyright (c) 2020-2024 NocoBase Co., Ltd.
* Authors: NocoBase Team.
*
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
* For more information, please refer to: https://www.nocobase.com/agreement.
*/
import Database, { createMockDatabase } from '@nocobase/database';
describe('single filter target key', () => { describe('single filter target key', () => {
let db: Database; let db: Database;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase(); db = await createMockDatabase();
await db.clean({ drop: true }); await db.clean({ drop: true });
}); });

View File

@ -7,14 +7,13 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import Database from '../database'; import { Database, createMockDatabase } from '@nocobase/database';
import { mockDatabase } from '../mock-database';
describe('filter', () => { describe('filter', () => {
let db: Database; let db: Database;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase(); db = await createMockDatabase();
await db.clean({ drop: true }); await db.clean({ drop: true });
}); });

View File

@ -7,14 +7,14 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import { Database, mockDatabase } from '@nocobase/database'; import { createMockDatabase, Database } from '@nocobase/database';
import sequelize from 'sequelize'; import sequelize from 'sequelize';
describe('migrator', () => { describe('migrator', () => {
let db: Database; let db: Database;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase({ db = await createMockDatabase({
tablePrefix: 'test_', tablePrefix: 'test_',
}); });

View File

@ -7,14 +7,13 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import { mockDatabase } from '../'; import { Database, createMockDatabase } from '@nocobase/database';
import { Database } from '../../database';
describe('afterCreateWithAssociations', () => { describe('afterCreateWithAssociations', () => {
let db: Database; let db: Database;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase(); db = await createMockDatabase();
await db.clean({ drop: true }); await db.clean({ drop: true });
}); });

View File

@ -7,14 +7,13 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import { Database } from '../../database'; import { Database, createMockDatabase } from '@nocobase/database';
import { mockDatabase } from '../';
describe('hook', () => { describe('hook', () => {
let db: Database; let db: Database;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase(); db = await createMockDatabase();
await db.clean({ drop: true }); await db.clean({ drop: true });
}); });

View File

@ -7,14 +7,13 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import Database from '../../database'; import { createMockDatabase, Database } from '@nocobase/database';
import { mockDatabase } from '../index';
describe.runIf(process.env['DB_DIALECT'] === 'postgres')('sync inherits', () => { describe.runIf(process.env['DB_DIALECT'] === 'postgres')('sync inherits', () => {
let db: Database; let db: Database;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase(); db = await createMockDatabase();
await db.clean({ drop: true }); await db.clean({ drop: true });
}); });

View File

@ -7,17 +7,15 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import { BelongsToManyRepository } from '@nocobase/database'; import { BelongsToManyRepository, createMockDatabase, Database } from '@nocobase/database';
import Database from '../../database';
import { InheritedCollection } from '../../inherited-collection';
import { mockDatabase } from '../index';
import { isPg } from '@nocobase/test'; import { isPg } from '@nocobase/test';
import { InheritedCollection } from '../../inherited-collection';
describe.runIf(isPg())('collection inherits', () => { describe.runIf(isPg())('collection inherits', () => {
let db: Database; let db: Database;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase(); db = await createMockDatabase();
await db.clean({ drop: true }); await db.clean({ drop: true });
}); });

View File

@ -7,18 +7,16 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import { mockDatabase } from '..'; import { Collection, Database, createMockDatabase } from '@nocobase/database';
import { Database } from '../../database';
import { Collection } from '../../collection';
import { DatetimeInterface } from '../../interfaces/datetime-interface';
import dayjs from 'dayjs'; import dayjs from 'dayjs';
import { DatetimeInterface } from '../../interfaces/datetime-interface';
describe('Date time interface', () => { describe('Date time interface', () => {
let db: Database; let db: Database;
let testCollection: Collection; let testCollection: Collection;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase(); db = await createMockDatabase();
await db.clean({ drop: true }); await db.clean({ drop: true });
testCollection = db.collection({ testCollection = db.collection({
name: 'tests', name: 'tests',

View File

@ -7,15 +7,14 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import { mockDatabase } from '..'; import { Database, createMockDatabase } from '@nocobase/database';
import { Database } from '../../database';
import { BaseInterface } from '../../interfaces/base-interface'; import { BaseInterface } from '../../interfaces/base-interface';
describe('interface manager', () => { describe('interface manager', () => {
let db: Database; let db: Database;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase(); db = await createMockDatabase();
await db.clean({ drop: true }); await db.clean({ drop: true });
}); });

View File

@ -7,15 +7,14 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import { mockDatabase } from '..'; import { Database, createMockDatabase } from '@nocobase/database';
import { Database } from '../../database';
import { MultipleSelectInterface } from '../../interfaces/multiple-select-interface'; import { MultipleSelectInterface } from '../../interfaces/multiple-select-interface';
describe('MultipleSelectInterface', () => { describe('MultipleSelectInterface', () => {
let db: Database; let db: Database;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase(); db = await createMockDatabase();
await db.clean({ drop: true }); await db.clean({ drop: true });
}); });

View File

@ -7,15 +7,14 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import { mockDatabase } from '..'; import { createMockDatabase, Database } from '@nocobase/database';
import { Database } from '../../database';
import { NumberInterface } from '../../interfaces/number-interface'; import { NumberInterface } from '../../interfaces/number-interface';
describe('number interface', () => { describe('number interface', () => {
let db: Database; let db: Database;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase(); db = await createMockDatabase();
await db.clean({ drop: true }); await db.clean({ drop: true });
}); });

View File

@ -7,15 +7,14 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import { mockDatabase } from '..'; import { Database, createMockDatabase } from '@nocobase/database';
import { Database } from '../../database';
import { PercentInterface } from '../../interfaces/percent-interface'; import { PercentInterface } from '../../interfaces/percent-interface';
describe('percent interface', () => { describe('percent interface', () => {
let db: Database; let db: Database;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase(); db = await createMockDatabase();
await db.clean({ drop: true }); await db.clean({ drop: true });
}); });

View File

@ -7,15 +7,14 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import { mockDatabase } from '..'; import { Database, createMockDatabase } from '@nocobase/database';
import { Database } from '../../database';
import { SelectInterface } from '../../interfaces/select-interface'; import { SelectInterface } from '../../interfaces/select-interface';
describe('SelectInterface', () => { describe('SelectInterface', () => {
let db: Database; let db: Database;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase(); db = await createMockDatabase();
await db.clean({ drop: true }); await db.clean({ drop: true });
}); });

View File

@ -7,14 +7,13 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import { mockDatabase } from '.'; import { createMockDatabase, Database, MagicAttributeModel } from '@nocobase/database';
import { Database, MagicAttributeModel } from '..';
describe('magic-attribute-model', () => { describe('magic-attribute-model', () => {
let db: Database; let db: Database;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase(); db = await createMockDatabase();
await db.clean({ drop: true }); await db.clean({ drop: true });
}); });

View File

@ -7,9 +7,9 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import { vi } from 'vitest'; import { createMockDatabase, Database, Migration } from '@nocobase/database';
import { Database, Migration, mockDatabase } from '@nocobase/database';
import { resolve } from 'path'; import { resolve } from 'path';
import { vi } from 'vitest';
const names = (migrations: Array<{ name: string }>) => migrations.map((m) => m.name); const names = (migrations: Array<{ name: string }>) => migrations.map((m) => m.name);
@ -17,7 +17,7 @@ describe('migrator', () => {
let db: Database; let db: Database;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase({ db = await createMockDatabase({
tablePrefix: 'test_', tablePrefix: 'test_',
}); });

View File

@ -7,14 +7,13 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import { Database } from '..'; import { createMockDatabase, Database } from '@nocobase/database';
import { mockDatabase } from '.';
describe('model hook', () => { describe('model hook', () => {
let db: Database; let db: Database;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase(); db = await createMockDatabase();
await db.clean({ drop: true }); await db.clean({ drop: true });
}); });

View File

@ -7,14 +7,13 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import Database from '../database'; import { Database, createMockDatabase } from '@nocobase/database';
import { mockDatabase } from '../mock-database';
describe('changedWithAssociations', () => { describe('changedWithAssociations', () => {
let db: Database; let db: Database;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase(); db = await createMockDatabase();
await db.clean({ drop: true }); await db.clean({ drop: true });
}); });

View File

@ -7,13 +7,13 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import { Database, mockDatabase } from '@nocobase/database'; import { createMockDatabase, Database } from '@nocobase/database';
describe('model', () => { describe('model', () => {
let db: Database; let db: Database;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase(); db = await createMockDatabase();
await db.clean({ drop: true }); await db.clean({ drop: true });
}); });

View File

@ -7,13 +7,13 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import { Database, mockDatabase } from '@nocobase/database'; import { createMockDatabase, Database, mockDatabase } from '@nocobase/database';
describe('non-id primary key', () => { describe('non-id primary key', () => {
let db: Database; let db: Database;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase({}); db = await createMockDatabase({});
await db.clean({ drop: true }); await db.clean({ drop: true });
}); });

View File

@ -7,8 +7,7 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import Database from '../../database'; import { createMockDatabase, Database } from '@nocobase/database';
import { mockDatabase } from '../index';
describe('array field operator', function () { describe('array field operator', function () {
let db: Database; let db: Database;
@ -22,7 +21,7 @@ describe('array field operator', function () {
}); });
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase({}); db = await createMockDatabase({});
await db.clean({ drop: true }); await db.clean({ drop: true });
Test = db.collection({ Test = db.collection({

View File

@ -7,10 +7,7 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import Database from '../../database'; import { Collection, Database, createMockDatabase } from '@nocobase/database';
import { Collection } from '../../collection';
import { mockDatabase } from '../index';
describe('association operator', () => { describe('association operator', () => {
let db: Database; let db: Database;
@ -27,7 +24,7 @@ describe('association operator', () => {
}); });
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase(); db = await createMockDatabase();
await db.clean({ drop: true }); await db.clean({ drop: true });
Group = db.collection({ Group = db.collection({
name: 'groups', name: 'groups',

View File

@ -7,7 +7,7 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import Database, { Collection, mockDatabase } from '@nocobase/database'; import Database, { Collection, createMockDatabase } from '@nocobase/database';
describe('boolean operator', () => { describe('boolean operator', () => {
let db: Database; let db: Database;
@ -19,7 +19,7 @@ describe('boolean operator', () => {
}); });
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase({}); db = await createMockDatabase({});
await db.clean({ drop: true }); await db.clean({ drop: true });

View File

@ -1,4 +1,13 @@
import Database, { mockDatabase, Repository } from '../../../index'; /**
* This file is part of the NocoBase (R) project.
* Copyright (c) 2020-2024 NocoBase Co., Ltd.
* Authors: NocoBase Team.
*
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
* For more information, please refer to: https://www.nocobase.com/agreement.
*/
import { createMockDatabase, Database, Repository } from '@nocobase/database';
describe('dateOnly operator', () => { describe('dateOnly operator', () => {
let db: Database; let db: Database;
@ -10,7 +19,7 @@ describe('dateOnly operator', () => {
}); });
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase({ db = await createMockDatabase({
timezone: '+08:00', timezone: '+08:00',
}); });

View File

@ -1,4 +1,13 @@
import Database, { mockDatabase, Repository } from '../../../index'; /**
* This file is part of the NocoBase (R) project.
* Copyright (c) 2020-2024 NocoBase Co., Ltd.
* Authors: NocoBase Team.
*
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
* For more information, please refer to: https://www.nocobase.com/agreement.
*/
import { createMockDatabase, Database, Repository } from '@nocobase/database';
describe('datetimeNoTz date operator test', () => { describe('datetimeNoTz date operator test', () => {
let db: Database; let db: Database;
@ -10,7 +19,7 @@ describe('datetimeNoTz date operator test', () => {
}); });
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase({ db = await createMockDatabase({
timezone: '+00:00', timezone: '+00:00',
}); });

View File

@ -7,9 +7,7 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import Database from '../../../database'; import { Database, Repository, createMockDatabase } from '@nocobase/database';
import { Repository } from '../../../repository';
import { mockDatabase } from '../../index';
describe('date operator test', () => { describe('date operator test', () => {
let db: Database; let db: Database;
@ -21,7 +19,7 @@ describe('date operator test', () => {
}); });
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase({ db = await createMockDatabase({
timezone: '+00:00', timezone: '+00:00',
}); });
await db.clean({ drop: true }); await db.clean({ drop: true });

View File

@ -1,4 +1,13 @@
import Database, { mockDatabase, Repository } from '../../../index'; /**
* This file is part of the NocoBase (R) project.
* Copyright (c) 2020-2024 NocoBase Co., Ltd.
* Authors: NocoBase Team.
*
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
* For more information, please refer to: https://www.nocobase.com/agreement.
*/
import { createMockDatabase, Database, Repository } from '@nocobase/database';
describe('unix timestamp date operator test', () => { describe('unix timestamp date operator test', () => {
let db: Database; let db: Database;
@ -10,7 +19,7 @@ describe('unix timestamp date operator test', () => {
}); });
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase({ db = await createMockDatabase({
timezone: '+00:00', timezone: '+00:00',
}); });

View File

@ -7,10 +7,7 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import Database from '../../database'; import { Collection, createMockDatabase, Database } from '@nocobase/database';
import { Collection } from '../../collection';
import { mockDatabase } from '../index';
describe('empty operator', () => { describe('empty operator', () => {
let db: Database; let db: Database;
@ -22,7 +19,7 @@ describe('empty operator', () => {
}); });
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase({}); db = await createMockDatabase({});
User = db.collection({ User = db.collection({
name: 'users', name: 'users',
fields: [ fields: [

View File

@ -7,15 +7,14 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import Database from '../../database'; import { createMockDatabase, Database } from '@nocobase/database';
import { mockDatabase } from '../index';
describe('eq operator', () => { describe('eq operator', () => {
let db: Database; let db: Database;
let Test; let Test;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase({}); db = await createMockDatabase({});
await db.clean({ drop: true }); await db.clean({ drop: true });
Test = db.collection({ Test = db.collection({

View File

@ -7,14 +7,13 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import Database from '../../database'; import { Database, createMockDatabase } from '@nocobase/database';
import { mockDatabase } from '../index';
describe('ne operator', () => { describe('ne operator', () => {
let db: Database; let db: Database;
let Test; let Test;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase({}); db = await createMockDatabase({});
await db.clean({ drop: true }); await db.clean({ drop: true });
Test = db.collection({ Test = db.collection({

View File

@ -7,14 +7,13 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import { mockDatabase } from '../index'; import { Database, createMockDatabase } from '@nocobase/database';
import Database from '../../database';
describe('ne operator', () => { describe('ne operator', () => {
let db: Database; let db: Database;
let Test; let Test;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase({}); db = await createMockDatabase({});
await db.clean({ drop: true }); await db.clean({ drop: true });
Test = db.collection({ Test = db.collection({

View File

@ -7,7 +7,7 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import Database, { Collection, mockDatabase } from '@nocobase/database'; import Database, { Collection, createMockDatabase } from '@nocobase/database';
describe('string operator', () => { describe('string operator', () => {
let db: Database; let db: Database;
@ -19,7 +19,7 @@ describe('string operator', () => {
}); });
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase({}); db = await createMockDatabase({});
await db.clean({ drop: true }); await db.clean({ drop: true });

View File

@ -7,10 +7,8 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import { Collection } from '../collection'; import { Collection, createMockDatabase, Database } from '@nocobase/database';
import { Database } from '../database';
import { OptionsParser } from '../options-parser'; import { OptionsParser } from '../options-parser';
import { mockDatabase } from './index';
describe('option parser', () => { describe('option parser', () => {
let db: Database; let db: Database;
@ -20,7 +18,7 @@ describe('option parser', () => {
let Tag: Collection; let Tag: Collection;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase(); db = await createMockDatabase();
await db.clean({ drop: true }); await db.clean({ drop: true });
User = db.collection<{ id: number; name: string }, { name: string }>({ User = db.collection<{ id: number; name: string }, { name: string }>({
name: 'users', name: 'users',

View File

@ -7,8 +7,7 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import { mockDatabase } from '../index'; import { Database, createMockDatabase } from '@nocobase/database';
import { Database } from '../../database';
import { randomStr } from '@nocobase/test'; import { randomStr } from '@nocobase/test';
describe('auth', () => { describe('auth', () => {
@ -22,7 +21,7 @@ describe('auth', () => {
it('should auto create schema on prepare when schema missing', async () => { it('should auto create schema on prepare when schema missing', async () => {
const schemaName = randomStr(); const schemaName = randomStr();
db = mockDatabase({ db = await createMockDatabase({
schema: schemaName, schema: schemaName,
}); });
@ -45,7 +44,7 @@ describe('postgres schema', () => {
let db: Database; let db: Database;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase({ db = await createMockDatabase({
schema: 'test_schema', schema: 'test_schema',
}); });

View File

@ -7,13 +7,13 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import { Database, mockDatabase } from '@nocobase/database'; import { createMockDatabase, Database } from '@nocobase/database';
describe.runIf(process.env.DB_DIALECT === 'mysql')('mysql', async () => { describe.runIf(process.env.DB_DIALECT === 'mysql')('mysql', async () => {
let db: Database; let db: Database;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase({ db = await createMockDatabase({
logging: console.log, logging: console.log,
}); });
@ -50,7 +50,7 @@ describe('query interface', async () => {
let db: Database; let db: Database;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase({ db = await createMockDatabase({
logging: console.log, logging: console.log,
}); });

View File

@ -7,7 +7,7 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import Database, { BelongsToRepository, Collection, mockDatabase } from '@nocobase/database'; import { BelongsToRepository, Collection, createMockDatabase, Database } from '@nocobase/database';
describe('appends', () => { describe('appends', () => {
let db: Database; let db: Database;
@ -23,7 +23,7 @@ describe('appends', () => {
}); });
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase(); db = await createMockDatabase();
await db.clean({ drop: true }); await db.clean({ drop: true });
User = db.collection({ User = db.collection({

View File

@ -7,10 +7,7 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import { Collection } from '@nocobase/database'; import { BelongsToManyRepository, Collection, createMockDatabase, Database } from '@nocobase/database';
import Database from '../../database';
import { BelongsToManyRepository } from '../../relation-repository/belongs-to-many-repository';
import { mockDatabase } from '../index';
import { pgOnly } from '@nocobase/test'; import { pgOnly } from '@nocobase/test';
pgOnly()('belongs to many with targetCollection', () => { pgOnly()('belongs to many with targetCollection', () => {
@ -23,7 +20,7 @@ pgOnly()('belongs to many with targetCollection', () => {
let OrgUser: Collection; let OrgUser: Collection;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase(); db = await createMockDatabase();
await db.clean({ drop: true }); await db.clean({ drop: true });
@ -98,7 +95,7 @@ pgOnly()('belongs to many with targetCollection', () => {
describe('belongs to many with collection that has no id key', () => { describe('belongs to many with collection that has no id key', () => {
let db: Database; let db: Database;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase(); db = await createMockDatabase();
await db.clean({ drop: true }); await db.clean({ drop: true });
}); });
@ -184,7 +181,7 @@ describe('belongs to many with target key', function () {
let Color: Collection; let Color: Collection;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase(); db = await createMockDatabase();
await db.clean({ drop: true }); await db.clean({ drop: true });
Post = db.collection({ Post = db.collection({
@ -320,7 +317,7 @@ describe('belongs to many', () => {
let Color; let Color;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase(); db = await createMockDatabase();
await db.clean({ drop: true }); await db.clean({ drop: true });
PostTag = db.collection({ PostTag = db.collection({
name: 'posts_tags', name: 'posts_tags',

View File

@ -1,7 +1,13 @@
import { Collection } from '@nocobase/database'; /**
import Database from '../../database'; * This file is part of the NocoBase (R) project.
import { BelongsToRepository } from '../../relation-repository/belongs-to-repository'; * Copyright (c) 2020-2024 NocoBase Co., Ltd.
import { mockDatabase } from '../index'; * Authors: NocoBase Team.
*
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
* For more information, please refer to: https://www.nocobase.com/agreement.
*/
import { BelongsToRepository, Collection, createMockDatabase, Database } from '@nocobase/database';
describe('belongs to repository', () => { describe('belongs to repository', () => {
let db: Database; let db: Database;
@ -9,7 +15,7 @@ describe('belongs to repository', () => {
let Post: Collection; let Post: Collection;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase(); db = await createMockDatabase();
await db.clean({ drop: true }); await db.clean({ drop: true });
User = db.collection({ User = db.collection({

View File

@ -7,10 +7,12 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import { mockDatabase } from '../index'; import Database, {
import { HasManyRepository } from '../../relation-repository/hasmany-repository'; BelongsToManyRepository,
import { BelongsToManyRepository } from '../../relation-repository/belongs-to-many-repository'; Collection,
import Database, { Collection } from '@nocobase/database'; createMockDatabase,
HasManyRepository,
} from '@nocobase/database';
describe('has many with target key', function () { describe('has many with target key', function () {
let db: Database; let db: Database;
@ -19,7 +21,7 @@ describe('has many with target key', function () {
}); });
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase(); db = await createMockDatabase();
await db.clean({ drop: true }); await db.clean({ drop: true });
}); });
@ -142,7 +144,7 @@ describe('has many repository', () => {
}); });
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase(); db = await createMockDatabase();
await db.clean({ drop: true }); await db.clean({ drop: true });
User = db.collection({ User = db.collection({
name: 'users', name: 'users',

View File

@ -1,7 +1,13 @@
import { Collection } from '@nocobase/database'; /**
import Database from '../../database'; * This file is part of the NocoBase (R) project.
import { HasOneRepository } from '../../relation-repository/hasone-repository'; * Copyright (c) 2020-2024 NocoBase Co., Ltd.
import { mockDatabase } from '../index'; * Authors: NocoBase Team.
*
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
* For more information, please refer to: https://www.nocobase.com/agreement.
*/
import { Collection, createMockDatabase, Database, HasOneRepository } from '@nocobase/database';
describe('has one repository', () => { describe('has one repository', () => {
let db: Database; let db: Database;
@ -9,7 +15,7 @@ describe('has one repository', () => {
let Profile: Collection; let Profile: Collection;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase(); db = await createMockDatabase();
await db.clean({ drop: true }); await db.clean({ drop: true });
User = db.collection({ User = db.collection({

View File

@ -7,10 +7,7 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import { Collection } from '../../collection'; import { Collection, Database, HasOneRepository, createMockDatabase } from '@nocobase/database';
import Database from '../../database';
import { HasOneRepository } from '../../relation-repository/hasone-repository';
import { mockDatabase } from '../index';
describe('has one repository', () => { describe('has one repository', () => {
let db: Database; let db: Database;
@ -26,7 +23,7 @@ describe('has one repository', () => {
}); });
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase(); db = await createMockDatabase();
User = db.collection({ User = db.collection({
name: 'users', name: 'users',
fields: [ fields: [

View File

@ -7,12 +7,13 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import Database, { HasManyRepository, mockDatabase } from '../../index'; import { Database, HasManyRepository, createMockDatabase } from '@nocobase/database';
describe('multi target key in association repository', () => { describe('multi target key in association repository', () => {
let db: Database; let db: Database;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase(); db = await createMockDatabase();
await db.clean({ drop: true }); await db.clean({ drop: true });
}); });

View File

@ -7,12 +7,12 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import { MockDatabase, mockDatabase } from '../../mock-database'; import { createMockDatabase, MockDatabase } from '@nocobase/database';
describe('relation repository', () => { describe('relation repository', () => {
let db: MockDatabase; let db: MockDatabase;
beforeEach(() => { beforeEach(async () => {
db = mockDatabase(); db = await createMockDatabase();
}); });
afterEach(async () => { afterEach(async () => {

View File

@ -7,11 +7,8 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import { Repository } from '@nocobase/database'; import { Collection, createMockDatabase, Database, Repository } from '@nocobase/database';
import { vi } from 'vitest'; import { vi } from 'vitest';
import { Collection } from '../collection';
import { Database } from '../database';
import { mockDatabase } from './';
describe('repository', () => { describe('repository', () => {
test('value to filter', async () => { test('value to filter', async () => {
@ -39,7 +36,7 @@ describe('find by targetKey', function () {
let db: Database; let db: Database;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase(); db = await createMockDatabase();
await db.clean({ drop: true }); await db.clean({ drop: true });
}); });
@ -91,7 +88,7 @@ describe('repository.find', () => {
let Tag: Collection; let Tag: Collection;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase(); db = await createMockDatabase();
await db.clean({ drop: true }); await db.clean({ drop: true });
User = db.collection({ User = db.collection({
name: 'users', name: 'users',
@ -284,7 +281,7 @@ describe('repository create with belongs to many', () => {
let db: Database; let db: Database;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase({ db = await createMockDatabase({
tablePrefix: '', tablePrefix: '',
}); });
await db.clean({ drop: true }); await db.clean({ drop: true });
@ -363,7 +360,7 @@ describe('repository.create', () => {
let Comment: Collection; let Comment: Collection;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase(); db = await createMockDatabase();
await db.clean({ drop: true }); await db.clean({ drop: true });
User = db.collection({ User = db.collection({
name: 'users', name: 'users',
@ -434,7 +431,7 @@ describe('repository.update', () => {
let Comment: Collection; let Comment: Collection;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase(); db = await createMockDatabase();
await db.clean({ drop: true }); await db.clean({ drop: true });
User = db.collection({ User = db.collection({
@ -687,7 +684,7 @@ describe('repository.destroy', () => {
let Comment: Collection; let Comment: Collection;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase(); db = await createMockDatabase();
await db.clean({ drop: true }); await db.clean({ drop: true });
User = db.collection({ User = db.collection({
name: 'users', name: 'users',
@ -755,7 +752,7 @@ describe('repository.relatedQuery', () => {
let Comment: Collection; let Comment: Collection;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase(); db = await createMockDatabase();
await db.clean({ drop: true }); await db.clean({ drop: true });
User = db.collection({ User = db.collection({
name: 'users', name: 'users',

View File

@ -7,9 +7,13 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import { BelongsToManyRepository, HasManyRepository, mockDatabase } from '../../index'; import {
import Database from '../../database'; BelongsToManyRepository,
import { Collection } from '../../collection'; Collection,
Database,
HasManyRepository,
createMockDatabase,
} from '@nocobase/database';
describe('association aggregation', () => { describe('association aggregation', () => {
let db: Database; let db: Database;
@ -23,7 +27,7 @@ describe('association aggregation', () => {
}); });
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase(); db = await createMockDatabase();
await db.clean({ drop: true }); await db.clean({ drop: true });
User = db.collection({ User = db.collection({
@ -240,7 +244,7 @@ describe('Aggregation', () => {
}); });
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase(); db = await createMockDatabase();
await db.clean({ drop: true }); await db.clean({ drop: true });
User = db.collection({ User = db.collection({

View File

@ -7,9 +7,7 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import { mockDatabase } from '../index'; import { Collection, createMockDatabase, Database } from '@nocobase/database';
import Database from '../../database';
import { Collection } from '../../collection';
import { vi } from 'vitest'; import { vi } from 'vitest';
describe('repository chunk', () => { describe('repository chunk', () => {
@ -22,7 +20,7 @@ describe('repository chunk', () => {
}); });
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase(); db = await createMockDatabase();
await db.clean({ drop: true }); await db.clean({ drop: true });

View File

@ -7,9 +7,7 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import { mockDatabase } from '../index'; import { Collection, HasManyRepository, createMockDatabase } from '@nocobase/database';
import { HasManyRepository } from '../../relation-repository/hasmany-repository';
import { Collection } from '../../collection';
describe('count', () => { describe('count', () => {
let db; let db;
@ -22,7 +20,7 @@ describe('count', () => {
}); });
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase(); db = await createMockDatabase();
await db.clean({ drop: true }); await db.clean({ drop: true });
User = db.collection({ User = db.collection({

View File

@ -7,9 +7,7 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import { mockDatabase } from '../index'; import { Collection, createMockDatabase, Database } from '@nocobase/database';
import Database from '../../database';
import { Collection } from '../../collection';
describe('create with hasMany', () => { describe('create with hasMany', () => {
let db: Database; let db: Database;
@ -21,7 +19,7 @@ describe('create with hasMany', () => {
}); });
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase(); db = await createMockDatabase();
await db.clean({ drop: true }); await db.clean({ drop: true });
User = db.collection({ User = db.collection({
@ -79,7 +77,7 @@ describe('create with belongsToMany', () => {
}); });
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase(); db = await createMockDatabase();
await db.clean({ drop: true }); await db.clean({ drop: true });
Post = db.collection({ Post = db.collection({
name: 'posts', name: 'posts',
@ -139,7 +137,7 @@ describe('create', () => {
let Role: Collection; let Role: Collection;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase(); db = await createMockDatabase();
await db.clean({ drop: true }); await db.clean({ drop: true });
Group = db.collection({ Group = db.collection({

View File

@ -7,9 +7,7 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import { mockDatabase } from '../index'; import { Collection, createMockDatabase, Database } from '@nocobase/database';
import { Collection } from '../../collection';
import { Database } from '@nocobase/database';
describe('destroy with targetKey', function () { describe('destroy with targetKey', function () {
let db: Database; let db: Database;
@ -21,7 +19,7 @@ describe('destroy with targetKey', function () {
}); });
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase(); db = await createMockDatabase();
await db.clean({ drop: true }); await db.clean({ drop: true });
User = db.collection({ User = db.collection({
name: 'users', name: 'users',
@ -95,7 +93,7 @@ describe('destroy', () => {
}); });
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase(); db = await createMockDatabase();
await db.clean({ await db.clean({
drop: true, drop: true,
}); });

View File

@ -7,14 +7,13 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import Database from '../../database'; import { Database, createMockDatabase } from '@nocobase/database';
import { mockDatabase } from '../index';
describe('find collection that without primary key', () => { describe('find collection that without primary key', () => {
let db: Database; let db: Database;
beforeAll(async () => { beforeAll(async () => {
db = mockDatabase({ db = await createMockDatabase({
tablePrefix: '', tablePrefix: '',
}); });

View File

@ -7,15 +7,13 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import { mockDatabase } from '../index'; import { Collection, createMockDatabase, Database } from '@nocobase/database';
import Database from '@nocobase/database';
import { Collection } from '../../collection';
import qs from 'qs'; import qs from 'qs';
describe('find with associations', () => { describe('find with associations', () => {
let db: Database; let db: Database;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase(); db = await createMockDatabase();
await db.clean({ drop: true }); await db.clean({ drop: true });
}); });
@ -573,7 +571,7 @@ describe('repository find', () => {
}); });
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase(); db = await createMockDatabase();
await db.clean({ drop: true }); await db.clean({ drop: true });
User = db.collection<{ id: number; name: string }, { name: string }>({ User = db.collection<{ id: number; name: string }, { name: string }>({
name: 'users', name: 'users',

View File

@ -7,7 +7,7 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import { Database, mockDatabase } from '@nocobase/database'; import { Database, createMockDatabase } from '@nocobase/database';
describe('update many', () => { describe('update many', () => {
let db: Database; let db: Database;
@ -16,7 +16,7 @@ describe('update many', () => {
}); });
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase(); db = await createMockDatabase();
await db.clean({ drop: true }); await db.clean({ drop: true });
db.collection({ db.collection({

View File

@ -7,7 +7,7 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import { Collection, Database, mockDatabase } from '@nocobase/database'; import { Collection, Database, createMockDatabase } from '@nocobase/database';
describe('update', () => { describe('update', () => {
let db: Database; let db: Database;
@ -20,7 +20,7 @@ describe('update', () => {
}); });
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase(); db = await createMockDatabase();
await db.clean({ drop: true }); await db.clean({ drop: true });
PostTag = db.collection({ PostTag = db.collection({

View File

@ -7,16 +7,15 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import { Database, createMockDatabase } from '@nocobase/database';
import { vi } from 'vitest'; import { vi } from 'vitest';
import { Database } from '../database';
import { mockDatabase } from './index';
// TODO // TODO
describe('sequelize-hooks', () => { describe('sequelize-hooks', () => {
let db: Database; let db: Database;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase(); db = await createMockDatabase();
await db.clean({ drop: true }); await db.clean({ drop: true });
await db.sync(); await db.sync();
}); });

View File

@ -7,14 +7,13 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import { Database } from '../database'; import { createMockDatabase, Database } from '@nocobase/database';
import { mockDatabase } from './';
describe('sort', function () { describe('sort', function () {
let db: Database; let db: Database;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase(); db = await createMockDatabase();
await db.clean({ drop: true }); await db.clean({ drop: true });
}); });

View File

@ -7,14 +7,14 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import { createMockDatabase, Database } from '@nocobase/database';
import { vi } from 'vitest'; import { vi } from 'vitest';
import { Database, mockDatabase } from '@nocobase/database';
describe('sync', () => { describe('sync', () => {
let db: Database; let db: Database;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase({ db = await createMockDatabase({
logging: console.log, logging: console.log,
}); });

View File

@ -7,13 +7,13 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import { Database, mockDatabase } from '../../index'; import { Database, createMockDatabase } from '@nocobase/database';
describe('default value', () => { describe('default value', () => {
let db: Database; let db: Database;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase({}); db = await createMockDatabase({});
await db.clean({ drop: true }); await db.clean({ drop: true });
}); });

View File

@ -7,13 +7,13 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import { Database, mockDatabase } from '../../index'; import { createMockDatabase, Database } from '@nocobase/database';
describe.skip('delete field', () => { describe.skip('delete field', () => {
let db: Database; let db: Database;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase({}); db = await createMockDatabase({});
await db.clean({ drop: true }); await db.clean({ drop: true });
}); });

View File

@ -7,7 +7,7 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import { Database, mockDatabase } from '@nocobase/database'; import { createMockDatabase, Database } from '@nocobase/database';
import * as process from 'process'; import * as process from 'process';
describe('empty table', () => { describe('empty table', () => {
@ -20,7 +20,7 @@ describe('empty table', () => {
}; };
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase({}); db = await createMockDatabase({});
await db.clean({ drop: true }); await db.clean({ drop: true });
}); });

View File

@ -7,14 +7,13 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import { primaryKey } from '@nocobase/client'; import { Database, createMockDatabase } from '@nocobase/database';
import { Database, mockDatabase } from '@nocobase/database';
describe('foreign key', () => { describe('foreign key', () => {
let db: Database; let db: Database;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase({}); db = await createMockDatabase({});
await db.clean({ drop: true }); await db.clean({ drop: true });
}); });

View File

@ -7,14 +7,14 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import { Database, mockDatabase } from '../../index'; import { createMockDatabase, Database } from '@nocobase/database';
import * as process from 'process'; import * as process from 'process';
describe('primary key', () => { describe('primary key', () => {
let db: Database; let db: Database;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase({}); db = await createMockDatabase({});
await db.clean({ drop: true }); await db.clean({ drop: true });
}); });
@ -89,7 +89,7 @@ describe.skipIf(process.env['DB_DIALECT'] === 'sqlite')('primary key not in sqli
let db: Database; let db: Database;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase({}); db = await createMockDatabase({});
await db.clean({ drop: true }); await db.clean({ drop: true });
}); });

View File

@ -7,14 +7,14 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import { Database, mockDatabase } from '../../index'; import { Database, createMockDatabase } from '@nocobase/database';
import { waitSecond } from '@nocobase/test'; import { waitSecond } from '@nocobase/test';
describe('unique index', () => { describe('unique index', () => {
let db: Database; let db: Database;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase({}); db = await createMockDatabase({});
await db.clean({ drop: true }); await db.clean({ drop: true });
}); });

View File

@ -7,14 +7,13 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import { Database } from '../database'; import { createMockDatabase, Database } from '@nocobase/database';
import { mockDatabase } from './index';
describe('targetKey', () => { describe('targetKey', () => {
let db: Database; let db: Database;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase(); db = await createMockDatabase();
await db.clean({ drop: true }); await db.clean({ drop: true });
}); });

View File

@ -7,13 +7,13 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import { Database, mockDatabase } from '@nocobase/database'; import { createMockDatabase, Database } from '@nocobase/database';
describe('underscored options', () => { describe('underscored options', () => {
let db: Database; let db: Database;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase({ db = await createMockDatabase({
underscored: true, underscored: true,
}); });

View File

@ -7,13 +7,13 @@
* For more information, please refer to: https://www.nocobase.com/agreement. * For more information, please refer to: https://www.nocobase.com/agreement.
*/ */
import { Database, mockDatabase } from '@nocobase/database'; import { createMockDatabase, Database } from '@nocobase/database';
describe('unique field', () => { describe('unique field', () => {
let db: Database; let db: Database;
beforeEach(async () => { beforeEach(async () => {
db = mockDatabase({ db = await createMockDatabase({
logging: console.log, logging: console.log,
}); });

Some files were not shown because too many files have changed in this diff Show More