/
githubmirror
/
strapi
Обзор
Документация
Войти
/
githubmirror
/
strapi
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
develop
tests/api/utils/builder-helper.ts
83 строки
2 KB
Ben Irvin
fix(admin): improve SSO session metadata and logout revocation (#26872)
20 июл 2026, 18:02
Не верифицирован
20 июл 2026, 18:02
3b03391
Код
Авторство
О чём код?
import type { Core } from '@strapi/types'; import { values } from 'lodash/fp'; import { createTestBuilder } from 'api-tests/builder'; import { createStrapiInstance } from 'api-tests/strapi'; import { createAuthRequest } from 'api-tests/request'; type Builder = ReturnType<typeof createTestBuilder>; export type BuilderHelperReturn = { builder: Builder; data: any; strapi: Core.Strapi; rq: { admin: ReturnType<typeof createAuthRequest>; // public: ReturnType<typeof createAuthRequest>; }; }; export type BuilderResources = { fixtures: any; schemas: any; locales?: any; }; const addSchemasToBuilder = (schemas, builder) => { for (const component of values(schemas.components)) { builder.addComponent(component); } builder.addContentTypes(values(schemas['content-types'])); }; const bootstrapBuilder = ({ fixtures, schemas, locales }: BuilderResources, builder: Builder) => { addSchemasToBuilder(schemas, builder); if (locales) { builder.addFixtures('plugin::i18n.locale', locales); } Object.keys(schemas['content-types']).forEach((index) => { const fixture = fixtures['content-types'][index]; const schema = schemas['content-types'][index]; builder.addFixtures(schema.singularName, fixture); }); }; let documentServiceSetupBarrier = Promise.resolve(); export const createTestSetup = async ( resources: BuilderResources ): Promise<BuilderHelperReturn> => { await documentServiceSetupBarrier; const builder = createTestBuilder(); bootstrapBuilder(resources, builder); await builder.build(); const strapi = await createStrapiInstance(); const rqAdmin = await createAuthRequest({ strapi }); const data = await builder.sanitizedFixtures(strapi); return { builder, data, strapi, rq: { admin: rqAdmin, // public: rqAdmin, // TODO }, }; }; export const destroyTestSetup = async ({ strapi, builder }) => { documentServiceSetupBarrier = documentServiceSetupBarrier.then(async () => { await strapi.destroy(); await builder.cleanup(); }); await documentServiceSetupBarrier; };