add test case

This commit is contained in:
liuyi 2025-05-25 23:06:12 +08:00
parent 764fe06c50
commit 8eb9126bc2
7 changed files with 499 additions and 27 deletions

View File

@ -39,6 +39,9 @@
"validator": "^13.15.0"
},
"devDependencies": {
"@faker-js/faker": "^9.8.0",
"@jest/test-result": "^29.7.0",
"@jest/test-sequencer": "^29.7.0",
"@nestjs/cli": "^10.0.3",
"@nestjs/schematics": "^10.0.1",
"@nestjs/testing": "^10.0.3",

View File

@ -57,6 +57,15 @@ importers:
specifier: ^13.15.0
version: 13.15.0
devDependencies:
'@faker-js/faker':
specifier: ^9.8.0
version: 9.8.0
'@jest/test-result':
specifier: ^29.7.0
version: 29.7.0
'@jest/test-sequencer':
specifier: ^29.7.0
version: 29.7.0
'@nestjs/cli':
specifier: ^10.0.3
version: 10.4.9(@swc/cli@0.1.65(@swc/core@1.11.24)(chokidar@3.6.0))(@swc/core@1.11.24)
@ -359,6 +368,10 @@ packages:
resolution: {integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
'@faker-js/faker@9.8.0':
resolution: {integrity: sha512-U9wpuSrJC93jZBxx/Qq2wPjCuYISBueyVUGK7qqdmj7r/nxaxwW8AQDCLeRO7wZnjj94sh3p246cAYjUKuqgfg==}
engines: {node: '>=18.0.0', npm: '>=9.0.0'}
'@fastify/ajv-compiler@3.6.0':
resolution: {integrity: sha512-LwdXQJjmMD+GwLOkP7TVC68qa+pSSogeWWmznRJ/coyTcfe9qA05AHFSe1eZFwK6q+xVRpChnvFUkf1iYaSZsQ==}
@ -4261,6 +4274,8 @@ snapshots:
'@eslint/js@8.57.1': {}
'@faker-js/faker@9.8.0': {}
'@fastify/ajv-compiler@3.6.0':
dependencies:
ajv: 8.17.1

View File

@ -0,0 +1,76 @@
import { describe } from 'node:test';
import { FastifyAdapter, NestFastifyApplication } from '@nestjs/platform-fastify';
import { Test, TestingModule } from '@nestjs/testing';
import { pick } from 'lodash';
import { DataSource } from 'typeorm';
import { database } from '@/config';
import { ContentModule } from '@/modules/content/content.module';
import { CategoryEntity } from '@/modules/content/entities';
import { CategoryRepository } from '@/modules/content/repositories';
import { DatabaseModule } from '@/modules/database/database.module';
import { initialCategories } from './test-data';
describe('category test', () => {
let datasource: DataSource;
let app: NestFastifyApplication;
let categoryRepository: CategoryRepository;
beforeAll(async () => {
const module: TestingModule = await Test.createTestingModule({
imports: [ContentModule, DatabaseModule.forRoot(database)],
}).compile();
app = module.createNestApplication<NestFastifyApplication>(new FastifyAdapter());
await app.init();
await app.getHttpAdapter().getInstance().ready();
categoryRepository = module.get<CategoryRepository>(CategoryRepository);
datasource = module.get<DataSource>(DataSource);
await categoryRepository.clear();
// init category data
const categories = await addCategory(app, initialCategories);
console.log(categories);
// init tag data
addTag(app, []);
// init post data
addPost(app, []);
// init comment data
});
it('check init', async () => {
expect(app).toBeDefined();
});
afterAll(async () => {
await datasource.destroy(); // 关闭数据库连接
await app.close();
});
});
async function addCategory(
app: NestFastifyApplication,
data: RecordAny[],
parentId?: string,
): Promise<CategoryEntity[]> {
const categories: CategoryEntity[] = [];
if (app && data && data.length > 0) {
for (let index = 0; index < data.length; index++) {
const item = data[index];
const result = await app.inject({
method: 'POST',
url: '/category',
body: { ...pick(item, ['name', 'customOrder']), parent: parentId },
});
const addedItem: CategoryEntity = result.json();
categories.push(addedItem);
categories.push(...(await addCategory(app, item.children, addedItem.id)));
}
}
return categories;
}
function addTag(app: NestFastifyApplication, data: RecordAny[]) {}
function addPost(app: NestFastifyApplication, data: RecordAny[]) {}

View File

@ -8,14 +8,12 @@ import { DataSource } from 'typeorm';
import { database } from '@/config';
import { ContentModule } from '@/modules/content/content.module';
import { CategoryController } from '@/modules/content/controllers';
import { CategoryRepository } from '@/modules/content/repositories';
import { DatabaseModule } from '@/modules/database/database.module';
describe('category test', () => {
let controller: CategoryController;
let datasource: DataSource;
let app: NestFastifyApplication;
let repository: CategoryRepository;
beforeAll(async () => {
const module: TestingModule = await Test.createTestingModule({
@ -25,42 +23,28 @@ describe('category test', () => {
await app.init();
await app.getHttpAdapter().getInstance().ready();
controller = module.get<CategoryController>(CategoryController);
repository = module.get<CategoryRepository>(CategoryRepository);
datasource = module.get<DataSource>(DataSource);
await repository.clear();
});
it('check datasource', () => {
expect(datasource).toBeDefined();
});
it('create new category', () => {
it('check new category', () => {
expect(controller).toBeDefined();
});
it('/category', () => {
return app
.inject({
method: 'GET',
url: '/category',
})
.then((result) => {
console.log(result.json());
expect(result.statusCode).toEqual(200);
expect(result.json().items).toEqual([]);
});
it('create new category', () => {
expect(app).toBeDefined();
});
it('/category/create', () => {
return app
.inject({
method: 'POST',
url: '/category',
body: { name: 'hhhhh' },
})
.then((result) => {
console.log(result.json());
expect(result.statusCode).toEqual(201);
});
it('/category', async () => {
const result = await app.inject({
method: 'GET',
url: '/category',
});
console.log(result.json());
expect(result.statusCode).toEqual(200);
expect(result.json().items).toEqual([]);
});
afterAll(async () => {

View File

@ -0,0 +1,37 @@
import { fakerEN } from '@faker-js/faker/.';
import { CreateCommentDto } from '@/modules/content/dtos/comment.dto';
import { CreatePostDto } from '@/modules/content/dtos/post.dto';
import { CreateTagDto } from '@/modules/content/dtos/tag.dto';
export function generateMockPost(): CreatePostDto {
return {
title: fakerEN.lorem.words(5).slice(0, 255),
body: fakerEN.lorem.paragraphs(3),
summary: fakerEN.lorem.sentence().slice(0, 500),
publish: fakerEN.datatype.boolean(),
keywords: Array(3)
.fill(null)
.map(() => fakerEN.lorem.word().slice(0, 20)),
customOrder: fakerEN.number.int({ min: 0, max: 10000 }),
category: fakerEN.string.uuid(),
tags: Array(2)
.fill(null)
.map(() => fakerEN.string.uuid()),
};
}
export function generateMockTag(): CreateTagDto {
return {
name: fakerEN.lorem.word().slice(0, 20),
desc: fakerEN.lorem.words(5).slice(0, 255),
};
}
export function generateMockComment(): CreateCommentDto {
return {
body: fakerEN.lorem.paragraphs(2),
post: fakerEN.string.uuid(),
parent: fakerEN.string.uuid(),
};
}

339
test/test-data.ts Normal file
View File

@ -0,0 +1,339 @@
export const initialCategories = [
{
name: '全栈',
customOrder: 100,
children: [
{
name: '前端',
customOrder: 110,
children: [
{ name: 'React', customOrder: 111 },
{ name: 'CSS', customOrder: 112 },
],
},
{
name: '后端',
customOrder: 120,
children: [
{ name: 'Java', customOrder: 121 },
{ name: 'nodejs', customOrder: 122 },
],
},
{
name: '服务器',
customOrder: 130,
children: [
{ name: 'Ubuntu', customOrder: 131 },
{ name: 'MySql', customOrder: 132 },
],
},
{
name: '网络',
customOrder: 140,
children: [
{ name: 'NAS', customOrder: 141 },
{ name: '云服务', customOrder: 142 },
],
},
],
},
];
export const postData = [
{
title: 'quis stultus sit cresco sono',
body:
'Coadunatio sequi solvo abstergo utilis stipes urbanus ceno victus. Clamo subiungo quaerat vinitor sto tutamen utique tabesco dignissimos. Cogito cumque nesciunt.\n' +
'Cunae beatus molestiae cubitum patria vulariter supellex. Casso itaque vos dapifer delibero administratio. Ea suppono carbo valeo vergo blanditiis.\n' +
'Conicio ab cattus caste audacia arbor rerum. Creator aveho solvo somnus deleo enim tardus maiores volubilis aeternus. Necessitatibus tantum doloribus voluptatibus.',
summary: 'Sui adsum demoror attollo acceptus creator caput turbo.',
publish: true,
keywords: ['ver', 'vicissitudo', 'surculus'],
customOrder: 8504,
category: 'd719e421-8ae3-44c8-8046-855af054e549',
tags: ['c2a0f67d-a14f-4832-a1ab-c8e466b194d1', '74a3eea1-d765-419b-86c0-38ff0285ba7e'],
},
{
title: 'neque aeger adduco volubilis tabesco',
body:
'Aeger et nobis theologus theca vobis iste aeneus. Vitiosus versus volup adfectus. Addo aspernatur paens theatrum abscido tricesimus.\n' +
'Asper vulgus virgo vesco timor. Communis decretum solio. Speculum sufficio eius currus denuo conscendo.\n' +
'Verto aedificium verumtamen. Ab conicio sequi. Sol triduana tepidus curtus.',
summary: 'Alter quam nihil depereo adficio.',
publish: true,
keywords: ['bis', 'accommodo', 'patria'],
customOrder: 7704,
category: 'f9aed287-792b-4354-8bcf-776813e1b6cc',
tags: ['82fda4bd-329d-410b-a302-9bad76744959', '9ff5b9c5-1706-4bde-af9b-b80f3635a80f'],
},
{
title: 'abduco vere fugit conspergo timidus',
body:
'Defessus iste termes cedo acquiro vicissitudo spiritus. Volubilis dens summisse crapula cupiditas. Delectatio barba urbanus cresco omnis tergeo deludo.\n' +
'Voluptatum cupiditate comprehendo verto trans. Clementia benigne videlicet. Teres dapifer tripudio ambulo catena dolore vapulus aequitas urbanus.\n' +
'Praesentium agnosco censura cultura. Strenuus volutabrum despecto doloribus. Volutabrum cui pauper altus angustus.',
summary: 'Adeptio nostrum statua.',
publish: true,
keywords: ['defendo', 'decens', 'volutabrum'],
customOrder: 4705,
category: '5de47931-5a56-4615-a6cf-15109901bc62',
tags: ['de1756a0-4fd1-4d7e-9965-4507d291206f', '3b4f42a7-9fd6-4320-930f-fa3270830087'],
},
{
title: 'cura ea cedo veritatis illo',
body:
'Denuncio necessitatibus arto abduco amiculum. Absens tendo audentia denique conspergo curso stips decerno claudeo. Acervus virgo solus quo tondeo advoco quaerat vacuus.\n' +
'Valeo coepi velum cum beneficium caries taceo tepesco. Tendo totam debitis subiungo arca venio adstringo accusantium sol super. Tenuis appono copia adversus.\n' +
'Conicio quo tabgo aperio civis thermae incidunt capitulus. Terebro cribro ademptio adopto alius via aiunt aeger tempus. Solus iure bibo utilis verecundia sint adversus tepesco comparo.',
summary:
'Coerceo cohors vinculum conitor crux provident corrupti commodo advenio deserunt.',
publish: false,
keywords: ['cimentarius', 'amitto', 'spoliatio'],
customOrder: 969,
category: '95d5d020-25c4-4952-a615-24f529da4ed8',
tags: ['2b52b1db-5dad-4e51-88fa-ec8581d439f9', '419831b4-f12e-48c4-99a3-94500b527ec5'],
},
{
title: 'coniecto viridis adicio aptus aequitas',
body:
'Decumbo et ad. Varietas approbo cunctatio comedo tenax. Vereor blanditiis cilicium urbs apparatus dedecor aperiam cubo.\n' +
'Viduo convoco tabernus curatio comparo teneo caste. Conduco apto molestias modi amitto acsi calcar laborum subiungo. Spargo decipio cras carcer.\n' +
'Vicinus comitatus spero acies cribro denique. Repudiandae spiculum tabernus voluptatem ascisco aegre comitatus acerbitas cogito. Agnitio veritatis compello apto viscus decet.',
summary: 'Defungo ducimus voro vado.',
publish: true,
keywords: ['vilis', 'demonstro', 'mollitia'],
customOrder: 8182,
category: 'f3519ed3-c43f-4982-99b7-e056c2621071',
tags: ['1653f2f4-735e-4816-b73c-7b6d878f72d2', '31d1d489-6f6c-44ad-9591-eb5873f74d32'],
},
{
title: 'temperantia tonsor summisse labore aestas',
body:
'Circumvenio solitudo desidero velociter thermae libero ambitus tantillus. Animi vergo coepi tunc urbanus. Cogo charisma culpo admitto labore inventore calamitas cariosus.\n' +
'Comedo tabella modi aggero alias auxilium thesaurus asperiores alveus bene. Vulgivagus succedo suscipio eligendi vulgivagus reprehenderit titulus credo conitor. Eligendi tracto vester.\n' +
'Animi taceo strues soluta stipes speculum. Tolero vulnero delectatio aestas admitto minus tonsor absens. Solitudo compello adsuesco vinco fuga calcar testimonium.',
summary: 'Patria beatae dens tenuis ventus corroboro catena adnuo comptus.',
publish: false,
keywords: ['nesciunt', 'cupio', 'dedecor'],
customOrder: 7334,
category: '5388c241-c9c9-477c-8e67-ea09fff97405',
tags: ['1efeeb0c-99f0-4755-99e1-0001fbd6370e', '5d3ed97a-574c-41d1-8dd9-81f22b6bd7bd'],
},
{
title: 'demum stultus quam laborum collum',
body:
'Corona aliqua suffoco thema defetiscor quisquam ter commodo. Cruentus eos suppono tremo somnus sonitus pecto valeo. Amet quidem ullam venia nisi umquam.\n' +
'Trans patruus architecto auctus validus. Coaegresco vapulus desparatus. Uxor tripudio vae vinitor theologus.\n' +
'Solvo hic rerum thesaurus crapula caecus trucido iste. Avarus suffragium corporis. Chirographum ab cubitum deludo ars tracto abbas depulso cresco absconditus.',
summary: 'Vapulus arbor eius velut sui termes.',
publish: true,
keywords: ['creptio', 'illum', 'taedium'],
customOrder: 1672,
category: 'e125d38d-a38e-45b3-868b-2e6838ae2552',
tags: ['c8a3bba2-e736-4a1e-ae94-2b9b4152751d', '7aaf4fd3-bb4e-4daa-b80f-50df9e25738c'],
},
{
title: 'pax ipsam attonbitus capillus curatio',
body:
'Amplus sperno quas. Conservo decimus aestivus vita patria crustulum sunt aperio capto uberrime. Autus ter voco astrum provident decet pecto.\n' +
'Tergum carpo argentum nobis surgo. Est alter turpis. Tracto conduco deleniti molestiae cinis civitas talus antepono.\n' +
'Vindico cuppedia dedico ustilo tredecim supplanto valeo. Vomica exercitationem votum delinquo colo contabesco consectetur velociter deinde temporibus. Cena cresco tergo carcer defluo virgo.',
summary: 'Calculus claudeo rem tum.',
publish: false,
keywords: ['vilis', 'toties', 'tunc'],
customOrder: 7021,
category: 'e3082f1a-5338-4d39-9437-f9e48055d2af',
tags: ['3050bc94-264c-458f-989f-a059e8cd94e0', '4accfde6-d25a-4bc4-b4b4-7b9132b342d8'],
},
{
title: 'sapiente beatus centum vorago spiritus',
body:
'Vorago talus ratione victus. Solus porro coerceo collum spiritus verecundia theca tredecim. Amplexus utique comburo veniam cotidie ventosus.\n' +
'Nemo crastinus confugo aurum. Triumphus aequitas vulgo cumque solutio censura adduco animus. Comptus territo arma summisse vomer bestia.\n' +
'Desparatus corroboro adduco tres patria averto. Civis valeo vociferor stipes barba. Sono tribuo deficio currus peior quas tibi.',
summary: 'Creator sapiente ademptio vulgaris custodia calculus.',
publish: true,
keywords: ['cum', 'dolorem', 'sonitus'],
customOrder: 618,
category: '11403e50-fe26-493b-98bc-e2978e8114cb',
tags: ['ffa3aaf9-90af-4758-88be-1990d903e713', 'c30270d2-4f09-4c54-98b8-95ef3b72c4b9'],
},
{
title: 'caritas deduco trado statua ducimus',
body:
'Voluptatibus asperiores ulterius aduro decet pauci peccatus vulgaris distinctio cavus. Cornu confero abduco tabula undique bos asper. Cado omnis cum adicio demens uxor virga acer bibo ater.\n' +
'Libero autus anser comburo adulescens vigor ante cum triduana spiritus. Deinde cupio soluta ustulo peior amor incidunt tam. Vulgaris caveo ipsa ratione cibus.\n' +
'Tollo venustas tenuis crux thesis summisse sperno trepide. Canonicus stultus coniuratio clamo conventus vinum. Volo caveo annus deludo eveniet decimus.',
summary: 'Cauda claro censura caste corrigo censura deinde concido coniuratio cibus.',
publish: true,
keywords: ['tempora', 'socius', 'abstergo'],
customOrder: 2309,
category: 'e0783c35-de51-489e-bb36-31a3b96a47f4',
tags: ['e7f4f0fc-55e7-4f8a-b632-a6acc5cf41c6', '52499d51-16c6-47dd-9919-3c4f4b8a51c0'],
},
];
export const tagData = [
{ name: 'talus', desc: 'trucido amo bardus nulla degusto' },
{ name: 'studio', desc: 'patria deleniti volutabrum sponte vinitor' },
{ name: 'arx', desc: 'viduo vilitas videlicet baiulus canonicus' },
{ name: 'auctus', desc: 'aestus theologus deporto cunctatio caelum' },
{ name: 'tego', desc: 'cuius adduco armarium cunctatio error' },
{ name: 'ancilla', desc: 'adipisci audacia vorago somnus tumultus' },
{
name: 'assentator',
desc: 'usitas vis consectetur arbustum tergum',
},
{
name: 'victoria',
desc: 'damno voluntarius cimentarius deprimo aureus',
},
{ name: 'impedit', desc: 'statim cresco thorax abbas benigne' },
{
name: 'tertius',
desc: 'denuo vicissitudo trepide agnitio cohibeo',
},
];
export const commentData = [
{
body:
'Doloribus triduana libero tero laboriosam aspernatur desidero cilicium demens ubi. Cohaero ustilo acervus antepono antea balbus sulum angustus peccatus. Verus callide aptus deserunt infit defero.\n' +
'Expedita teneo clam degenero suscipio aliquid. Crudelis amicitia congregatio tredecim. Cena auctor possimus.',
post: '24a677c6-face-4055-938e-4bb48f7ff915',
parent: '320a8f49-d394-44d0-aa50-27130d8d7183',
},
{
body:
'Degenero claudeo stillicidium cunctatio vicinus custodia videlicet vis tantum. Unde quas adsuesco. Valeo inventore cauda attollo.\n' +
'Debeo vester amaritudo arguo natus cedo. Vox velum candidus barba tres aegrus. Cerno harum cruciamentum triumphus tondeo tres quod collum ventito socius.',
post: 'd7d919e8-e262-47ce-9e2d-6d0e3733eab4',
parent: 'e1ee7a47-a7f2-40df-a51d-d7174bfa7f7a',
},
{
body:
'Coerceo auctus occaecati ventus deporto terebro acidus talis credo tabula. Addo cruciamentum bene. Acquiro culpa alioqui.\n' +
'Admiratio odit conspergo tactus quo officia supplanto blanditiis calculus. Sit debitis vestrum delectus patria tergiversatio circumvenio apostolus. Supplanto vesper stabilis.',
post: 'bf9b06e0-7807-4730-b683-b4beffd43b7c',
parent: '3d312618-1039-4678-bb78-f5dbf6c14db1',
},
{
body:
'Vae tamdiu reprehenderit tero derideo cuppedia arma. Ter amissio decerno agnosco earum. Benevolentia sodalitas beatae perspiciatis cavus agnitio sponte ultra super utrimque.\n' +
'Delicate tumultus ipsa tergum vere. Voluptatum ultra carus. Abutor delibero pecco sollers tamquam commodo virtus vergo.',
post: 'bd46f0f3-5e19-425b-b476-dfabfe89e3bd',
parent: '332ab139-eba8-434e-b45b-120e8cf42a1a',
},
{
body:
'Vesper aptus delego valetudo vociferor desino harum. Tolero velum amissio tandem patria deinde vicinus facere defendo crebro. Talus approbo urbanus adnuo colligo defungo.\n' +
'Antepono brevis supra summa tenetur depopulo. Paulatim dolorum votum stultus deputo volup curia. Vulticulus utroque carpo.',
post: 'fb1da82f-4911-4bc8-9f9e-ec8ab19deab2',
parent: '4a60b894-069e-4225-aabd-2cccefff292f',
},
{
body:
'Trucido calco totus ustulo patria templum non angelus. Amplitudo occaecati adficio somnus cubitum degero cupressus aliquid cinis accendo. Admitto auctus dolorum alioqui hic crepusculum adulatio.\n' +
'Dolore fuga studio tero vox viscus iure vilis demitto. Considero torqueo speciosus thema carmen timidus terror utor alioqui angustus. Defessus reprehenderit careo debilito.',
post: '6138ace3-5cfe-4e4b-92fc-51e26ce1f8b8',
parent: 'cda51125-c0a6-44e2-a57a-a0f343ab9f53',
},
{
body:
'Quis ipsum acquiro bis vae arcus addo acervus antepono defero. In absens tres deputo thymum thorax centum chirographum cilicium expedita. Adstringo civitas delicate defetiscor undique alias validus curriculum defluo bellum.\n' +
'Vehemens callide vulgivagus dolores tantum volubilis sufficio certe abeo sulum. Odit sed tres caput tremo. Adflicto vaco alter blanditiis delego aufero dignissimos enim defendo.',
post: '8175cb02-79b9-4a53-bf57-7de4e2108dbe',
parent: 'fd4d7a9b-73ac-490b-b17b-753d861a9314',
},
{
body:
'Summopere depraedor aegrotatio recusandae arca theologus appositus caritas rerum admoveo. Torqueo vulnus adiuvo vesper uterque. Cresco nihil vesper textor capio aufero vulgaris arca tertius tredecim.\n' +
'Aurum commodi totidem compello venio ocer adeptio aegre. Capillus quae acies tubineus corrumpo denego. Sollers thema paens ustulo venio.',
post: '8b7013a3-9445-4d76-9234-8b17fefbe09c',
parent: 'e21d7993-94c9-4d49-bbf0-83eac9b9c88d',
},
{
body:
'Alter usque constans blandior admoveo ante tergeo una tum. Chirographum cognomen agnosco. Aegre contigo cupio cupio.\n' +
'Decumbo capto ascit. Deporto ara cultura adaugeo aestas audentia. Aggredior aggero depereo civis.',
post: '2624c3d2-8e77-41d2-9bf6-ebf570a42439',
parent: 'db362594-7b00-46f4-8987-d06b97a1d228',
},
{
body:
'Contego condico vorago conatus. Texo autem vester deinde apparatus accommodo similique. Cornu vesper tremo concedo.\n' +
'Coepi quam dignissimos aegre coniecto. Spiritus taedium timor earum. Adhaero suffoco verto beneficium derideo tantillus.',
post: '145be150-a533-4383-af8d-e200d051755d',
parent: '2c736ca2-0a9b-4119-b559-f13f23d0779b',
},
{
body:
'Veritatis ter reiciendis adimpleo. Tribuo creator cariosus solus adsum tempora. Cultura pecus ut conduco verumtamen arcus succurro sequi.\n' +
'Civitas caput tabella commodi vado apto concedo. Curto volaticus virga veniam tribuo vespillo. Vulnero auxilium placeat comprehendo vicinus templum perferendis aqua adfectus.',
post: 'bb440164-4004-4d02-a247-77fb6c5a8ff3',
parent: '5c41cccf-0b75-41b7-ba45-d4a5ce5249c5',
},
{
body:
'Virgo ars celo comes ventosus corrigo candidus. Valetudo adflicto debitis cenaculum magni dignissimos combibo occaecati tepesco comprehendo. Timor magni copiose tum amaritudo vulgus celebrer carus vespillo aperiam.\n' +
'Adhaero infit umquam subvenio villa delectus vulnus attonbitus veritatis. Ante exercitationem trans contigo ipsa vorago adipiscor vulariter. Adulescens suggero censura.',
post: '81575076-cf2b-4cd9-a1c3-f742d916f744',
parent: '93af6e22-240e-4aca-b3c1-0c74e84bfc9c',
},
{
body:
'Coma aedificium thymbra tenuis avarus. Vix barba bestia accendo vinitor ater tandem voluptate compello decumbo. Curatio urbanus laboriosam copia theologus demens aegrus.\n' +
'Molestiae nam corporis decumbo iusto alias territo esse attollo. Statua coadunatio suscipit contigo trucido careo defero templum. Aptus colligo deprecator cogito maxime theologus acerbitas.',
post: 'a3e15a40-e242-4bea-b0ae-d3946a8350a1',
parent: 'eb8d9cc2-d029-4320-af00-ed3be06f2ae3',
},
{
body:
'Cui alii capillus. Alveus varius commodi solus cogito. Verus maiores et.\n' +
'Avarus surgo coniuratio impedit conservo doloremque odit. Incidunt vulpes blandior curso solum veritatis spoliatio. Quo curso thymum theatrum sto validus defetiscor paens cursim.',
post: '37a62506-70c1-40cd-aa73-8191d5627f6d',
parent: 'e1f63e02-6afe-4fff-9c58-2072285e0d06',
},
{
body:
'Cras tepidus strenuus dolor decor subiungo verecundia. Delibero defessus vix conduco ceno. Cras cena atque.\n' +
'Tenus veritas valens ubi conqueror velociter excepturi. Audeo arbitro cunae amet suspendo. Crapula sodalitas ratione thalassinus vesper xiphias aegre.',
post: '7dec60d3-d491-4008-93d8-9dcb971e2bc6',
parent: '3462079d-b172-4a4a-b8a0-23771a64f52b',
},
{
body:
'Tempus arca consequatur sublime adduco suasoria. Verumtamen pauper decet suadeo ipsa ocer tolero. Strenuus bellum thalassinus tripudio dapifer atrocitas unde umquam tantum.\n' +
'Averto amaritudo amicitia collum. Adflicto desino tersus adflicto cras vitium defetiscor quae via cibus. Canto mollitia tabula comminor speciosus repellendus.',
post: '23194290-e301-4c21-9283-6d0d4adbf690',
parent: '565d8ceb-1a2a-47db-a249-bf0a9d415740',
},
{
body:
'Cupressus doloribus calamitas tener. Voluptates cubicularis atqui. Tergo tergo adstringo.\n' +
'Dicta atrox pax audacia. Vulgivagus temeritas audax tamdiu qui vigilo universe. Coniuratio vitium corporis tener aeternus agnitio.',
post: 'ee02b43f-e707-4623-badf-f882191803f2',
parent: 'ccb90772-e623-4919-8073-80f17bfc9a3c',
},
{
body:
'Terminatio carcer cogo sed cultellus temeritas. Quia considero exercitationem sufficio dignissimos voro officia cilicium asperiores aegrotatio. Amitto adduco surgo paulatim decumbo amitto.\n' +
'Attonbitus ab averto. Acidus terebro teres thesis xiphias dolor. Caute amo error uter supra sophismata comprehendo volo appono.',
post: 'f06ec121-2f2c-4b2c-8864-507149face8d',
parent: 'a01f8315-4989-4a52-94c5-3b01760eac65',
},
{
body:
'Comburo deleniti vix tempore. Id ab quasi ars cervus benigne pecto. Vigilo annus averto acidus temeritas ater.\n' +
'Vomer pauci catena sperno abstergo ventito vinculum vilitas. Culpo maiores absconditus stella optio facere spiculum nostrum vulgivagus decimus. Super facere varius commodi concedo deleniti conforto.',
post: '47d8a591-436f-42d8-9e99-5aa950b62107',
parent: '0be7b91e-e781-4c35-80f1-a25cccabfa8b',
},
{
body:
'Vapulus arx vorago. Utor vorago admitto officia advoco casso ambitus subiungo. Constans corona depopulo vulgaris alius subseco socius vomer animadverto.\n' +
'Deprecator sed quasi vetus tenax theologus. Sol totus ipsam animus sustineo textilis color tener vir. Coadunatio pecco vel adhuc capto decor comminor suspendo accedo tonsor.',
post: 'b15d711b-3d5e-4dfd-9bc7-9a848f58e604',
parent: 'a64987c2-0256-4d1d-b271-26c65e3cb4df',
},
];

18
test/test-sequencer.ts Normal file
View File

@ -0,0 +1,18 @@
import path from 'path';
import { Test } from '@jest/test-result';
import TestSequencer from '@jest/test-sequencer';
export default class CustomSequencer extends TestSequencer {
private getOrder(filePath: string): number {
const filename = path.basename(filePath);
const match = filename.match(/^(\d+)-/);
return match ? parseInt(match[1], 10) : Infinity;
}
sort(tests: Array<Test>) {
return [...tests].sort((a, b) => {
return this.getOrder(a.path) - this.getOrder(b.path);
});
}
}