UNPKG

@dossierhq/integration-test

Version:

Integration test to ensure that different Dossier database adapters work as expected.

226 lines (225 loc) 16.4 kB
import type { Component, DossierClient, DossierExceptionClient, Entity, EntityReference, Location, PublishedDossierClient, PublishedDossierExceptionClient, PublishedEntity, RichText } from '@dossierhq/core'; export type AppDossierClient = DossierClient<AppEntity, AppComponent, AppUniqueIndexes, AppDossierExceptionClient>; export type AppDossierExceptionClient = DossierExceptionClient<AppEntity, AppComponent, AppUniqueIndexes>; export type AppUniqueIndexes = 'genericUnique' | 'stringsUnique'; export type AppEntity = ChangeValidations | Components | Locations | MigrationEntity | ReadOnly | References | RichTexts | Strings | SubjectOnly | SubjectOrDefaultAuthKey | TitleOnly; export interface ChangeValidationsFields { required: string | null; matchPattern: string | null; richText: RichText | null; component: AppComponent | null; componentList: AppComponent[] | null; } export type ChangeValidations = Entity<'ChangeValidations', ChangeValidationsFields, ''>; export declare function isChangeValidations(entity: Entity<string, object>): entity is ChangeValidations; export declare function assertIsChangeValidations(entity: Entity<string, object>): asserts entity is ChangeValidations; export interface ComponentsFields { any: AppComponent | null; anyAdminOnly: AppComponent | null; } export type Components = Entity<'Components', ComponentsFields, ''>; export declare function isComponents(entity: Entity<string, object>): entity is Components; export declare function assertIsComponents(entity: Entity<string, object>): asserts entity is Components; export interface LocationsFields { location: Location | null; locationList: Location[] | null; locationAdminOnly: Location | null; } export type Locations = Entity<'Locations', LocationsFields, ''>; export declare function isLocations(entity: Entity<string, object>): entity is Locations; export declare function assertIsLocations(entity: Entity<string, object>): asserts entity is Locations; export type MigrationEntityFields = Record<never, never>; export type MigrationEntity = Entity<'MigrationEntity', MigrationEntityFields, ''>; export declare function isMigrationEntity(entity: Entity<string, object>): entity is MigrationEntity; export declare function assertIsMigrationEntity(entity: Entity<string, object>): asserts entity is MigrationEntity; export interface ReadOnlyFields { message: string | null; } export type ReadOnly = Entity<'ReadOnly', ReadOnlyFields, '' | 'subject'>; export declare function isReadOnly(entity: Entity<string, object>): entity is ReadOnly; export declare function assertIsReadOnly(entity: Entity<string, object>): asserts entity is ReadOnly; export interface ReferencesFields { any: EntityReference | null; anyList: EntityReference[] | null; anyAdminOnly: EntityReference | null; titleOnly: EntityReference | null; } export type References = Entity<'References', ReferencesFields, ''>; export declare function isReferences(entity: Entity<string, object>): entity is References; export declare function assertIsReferences(entity: Entity<string, object>): asserts entity is References; export interface RichTextsFields { richText: RichText | null; richTextList: RichText[] | null; richTextMinimal: RichText | null; richTextLimitedTypes: RichText | null; } export type RichTexts = Entity<'RichTexts', RichTextsFields, ''>; export declare function isRichTexts(entity: Entity<string, object>): entity is RichTexts; export declare function assertIsRichTexts(entity: Entity<string, object>): asserts entity is RichTexts; export interface StringsFields { multiline: string | null; stringAdminOnly: string | null; pattern: string | null; patternList: string[] | null; values: 'bar' | 'baz' | 'foo' | null; valuesList: ('bar' | 'baz' | 'foo')[] | null; unique: string | null; uniqueAdminOnly: string | null; uniqueGenericIndex: string | null; } export type Strings = Entity<'Strings', StringsFields, ''>; export declare function isStrings(entity: Entity<string, object>): entity is Strings; export declare function assertIsStrings(entity: Entity<string, object>): asserts entity is Strings; export interface SubjectOnlyFields { message: string | null; } export type SubjectOnly = Entity<'SubjectOnly', SubjectOnlyFields, 'subject'>; export declare function isSubjectOnly(entity: Entity<string, object>): entity is SubjectOnly; export declare function assertIsSubjectOnly(entity: Entity<string, object>): asserts entity is SubjectOnly; export interface SubjectOrDefaultAuthKeyFields { message: string | null; } export type SubjectOrDefaultAuthKey = Entity<'SubjectOrDefaultAuthKey', SubjectOrDefaultAuthKeyFields, '' | 'subject'>; export declare function isSubjectOrDefaultAuthKey(entity: Entity<string, object>): entity is SubjectOrDefaultAuthKey; export declare function assertIsSubjectOrDefaultAuthKey(entity: Entity<string, object>): asserts entity is SubjectOrDefaultAuthKey; export interface TitleOnlyFields { title: string | null; } export type TitleOnly = Entity<'TitleOnly', TitleOnlyFields, ''>; export declare function isTitleOnly(entity: Entity<string, object>): entity is TitleOnly; export declare function assertIsTitleOnly(entity: Entity<string, object>): asserts entity is TitleOnly; export type AppComponent = AdminOnlyComponent | ChangeValidationsComponent | LocationsComponent | MigrationComponent | ReferencesComponent; export type AdminOnlyComponentFields = Record<never, never>; export type AdminOnlyComponent = Component<'AdminOnlyComponent', AdminOnlyComponentFields>; export declare function isAdminOnlyComponent(component: Component<string, object> | AdminOnlyComponent): component is AdminOnlyComponent; export declare function assertIsAdminOnlyComponent(component: Component<string, object> | AdminOnlyComponent): asserts component is AdminOnlyComponent; export interface ChangeValidationsComponentFields { matchPattern: string | null; } export type ChangeValidationsComponent = Component<'ChangeValidationsComponent', ChangeValidationsComponentFields>; export declare function isChangeValidationsComponent(component: Component<string, object> | ChangeValidationsComponent): component is ChangeValidationsComponent; export declare function assertIsChangeValidationsComponent(component: Component<string, object> | ChangeValidationsComponent): asserts component is ChangeValidationsComponent; export interface LocationsComponentFields { location: Location | null; locationAdminOnly: Location | null; } export type LocationsComponent = Component<'LocationsComponent', LocationsComponentFields>; export declare function isLocationsComponent(component: Component<string, object> | LocationsComponent): component is LocationsComponent; export declare function assertIsLocationsComponent(component: Component<string, object> | LocationsComponent): asserts component is LocationsComponent; export type MigrationComponentFields = Record<never, never>; export type MigrationComponent = Component<'MigrationComponent', MigrationComponentFields>; export declare function isMigrationComponent(component: Component<string, object> | MigrationComponent): component is MigrationComponent; export declare function assertIsMigrationComponent(component: Component<string, object> | MigrationComponent): asserts component is MigrationComponent; export interface ReferencesComponentFields { reference: EntityReference | null; } export type ReferencesComponent = Component<'ReferencesComponent', ReferencesComponentFields>; export declare function isReferencesComponent(component: Component<string, object> | ReferencesComponent): component is ReferencesComponent; export declare function assertIsReferencesComponent(component: Component<string, object> | ReferencesComponent): asserts component is ReferencesComponent; export type AppPublishedDossierClient = PublishedDossierClient<AppPublishedEntity, AppPublishedComponent, AppPublishedUniqueIndexes, AppPublishedDossierExceptionClient>; export type AppPublishedDossierExceptionClient = PublishedDossierExceptionClient<AppPublishedEntity, AppPublishedComponent, AppPublishedUniqueIndexes>; export type AppPublishedUniqueIndexes = 'genericUnique' | 'stringsUnique'; export type AppPublishedEntity = PublishedChangeValidations | PublishedComponents | PublishedLocations | PublishedMigrationEntity | PublishedReadOnly | PublishedReferences | PublishedRichTexts | PublishedStrings | PublishedSubjectOnly | PublishedSubjectOrDefaultAuthKey | PublishedTitleOnly; export interface PublishedChangeValidationsFields { required: string; matchPattern: string | null; richText: RichText | null; component: AppPublishedComponent | null; componentList: AppPublishedComponent[] | null; } export type PublishedChangeValidations = PublishedEntity<'ChangeValidations', PublishedChangeValidationsFields, ''>; export declare function isPublishedChangeValidations(entity: PublishedEntity<string, object>): entity is PublishedChangeValidations; export declare function assertIsPublishedChangeValidations(entity: PublishedEntity<string, object>): asserts entity is PublishedChangeValidations; export interface PublishedComponentsFields { any: AppPublishedComponent | null; } export type PublishedComponents = PublishedEntity<'Components', PublishedComponentsFields, ''>; export declare function isPublishedComponents(entity: PublishedEntity<string, object>): entity is PublishedComponents; export declare function assertIsPublishedComponents(entity: PublishedEntity<string, object>): asserts entity is PublishedComponents; export interface PublishedLocationsFields { location: Location | null; locationList: Location[] | null; } export type PublishedLocations = PublishedEntity<'Locations', PublishedLocationsFields, ''>; export declare function isPublishedLocations(entity: PublishedEntity<string, object>): entity is PublishedLocations; export declare function assertIsPublishedLocations(entity: PublishedEntity<string, object>): asserts entity is PublishedLocations; export type PublishedMigrationEntityFields = Record<never, never>; export type PublishedMigrationEntity = PublishedEntity<'MigrationEntity', PublishedMigrationEntityFields, ''>; export declare function isPublishedMigrationEntity(entity: PublishedEntity<string, object>): entity is PublishedMigrationEntity; export declare function assertIsPublishedMigrationEntity(entity: PublishedEntity<string, object>): asserts entity is PublishedMigrationEntity; export interface PublishedReadOnlyFields { message: string; } export type PublishedReadOnly = PublishedEntity<'ReadOnly', PublishedReadOnlyFields, '' | 'subject'>; export declare function isPublishedReadOnly(entity: PublishedEntity<string, object>): entity is PublishedReadOnly; export declare function assertIsPublishedReadOnly(entity: PublishedEntity<string, object>): asserts entity is PublishedReadOnly; export interface PublishedReferencesFields { any: EntityReference | null; anyList: EntityReference[] | null; titleOnly: EntityReference | null; } export type PublishedReferences = PublishedEntity<'References', PublishedReferencesFields, ''>; export declare function isPublishedReferences(entity: PublishedEntity<string, object>): entity is PublishedReferences; export declare function assertIsPublishedReferences(entity: PublishedEntity<string, object>): asserts entity is PublishedReferences; export interface PublishedRichTextsFields { richText: RichText | null; richTextList: RichText[] | null; richTextMinimal: RichText | null; richTextLimitedTypes: RichText | null; } export type PublishedRichTexts = PublishedEntity<'RichTexts', PublishedRichTextsFields, ''>; export declare function isPublishedRichTexts(entity: PublishedEntity<string, object>): entity is PublishedRichTexts; export declare function assertIsPublishedRichTexts(entity: PublishedEntity<string, object>): asserts entity is PublishedRichTexts; export interface PublishedStringsFields { multiline: string | null; pattern: string | null; patternList: string[] | null; values: 'bar' | 'baz' | 'foo' | null; valuesList: ('bar' | 'baz' | 'foo')[] | null; unique: string | null; uniqueGenericIndex: string | null; } export type PublishedStrings = PublishedEntity<'Strings', PublishedStringsFields, ''>; export declare function isPublishedStrings(entity: PublishedEntity<string, object>): entity is PublishedStrings; export declare function assertIsPublishedStrings(entity: PublishedEntity<string, object>): asserts entity is PublishedStrings; export interface PublishedSubjectOnlyFields { message: string; } export type PublishedSubjectOnly = PublishedEntity<'SubjectOnly', PublishedSubjectOnlyFields, 'subject'>; export declare function isPublishedSubjectOnly(entity: PublishedEntity<string, object>): entity is PublishedSubjectOnly; export declare function assertIsPublishedSubjectOnly(entity: PublishedEntity<string, object>): asserts entity is PublishedSubjectOnly; export interface PublishedSubjectOrDefaultAuthKeyFields { message: string; } export type PublishedSubjectOrDefaultAuthKey = PublishedEntity<'SubjectOrDefaultAuthKey', PublishedSubjectOrDefaultAuthKeyFields, '' | 'subject'>; export declare function isPublishedSubjectOrDefaultAuthKey(entity: PublishedEntity<string, object>): entity is PublishedSubjectOrDefaultAuthKey; export declare function assertIsPublishedSubjectOrDefaultAuthKey(entity: PublishedEntity<string, object>): asserts entity is PublishedSubjectOrDefaultAuthKey; export interface PublishedTitleOnlyFields { title: string; } export type PublishedTitleOnly = PublishedEntity<'TitleOnly', PublishedTitleOnlyFields, ''>; export declare function isPublishedTitleOnly(entity: PublishedEntity<string, object>): entity is PublishedTitleOnly; export declare function assertIsPublishedTitleOnly(entity: PublishedEntity<string, object>): asserts entity is PublishedTitleOnly; export type AppPublishedComponent = PublishedChangeValidationsComponent | PublishedLocationsComponent | PublishedMigrationComponent | PublishedReferencesComponent; export interface PublishedChangeValidationsComponentFields { matchPattern: string | null; } export type PublishedChangeValidationsComponent = Component<'ChangeValidationsComponent', PublishedChangeValidationsComponentFields>; export declare function isPublishedChangeValidationsComponent(component: Component<string, object> | PublishedChangeValidationsComponent): component is PublishedChangeValidationsComponent; export declare function assertIsPublishedChangeValidationsComponent(component: Component<string, object> | PublishedChangeValidationsComponent): asserts component is PublishedChangeValidationsComponent; export interface PublishedLocationsComponentFields { location: Location | null; } export type PublishedLocationsComponent = Component<'LocationsComponent', PublishedLocationsComponentFields>; export declare function isPublishedLocationsComponent(component: Component<string, object> | PublishedLocationsComponent): component is PublishedLocationsComponent; export declare function assertIsPublishedLocationsComponent(component: Component<string, object> | PublishedLocationsComponent): asserts component is PublishedLocationsComponent; export type PublishedMigrationComponentFields = Record<never, never>; export type PublishedMigrationComponent = Component<'MigrationComponent', PublishedMigrationComponentFields>; export declare function isPublishedMigrationComponent(component: Component<string, object> | PublishedMigrationComponent): component is PublishedMigrationComponent; export declare function assertIsPublishedMigrationComponent(component: Component<string, object> | PublishedMigrationComponent): asserts component is PublishedMigrationComponent; export interface PublishedReferencesComponentFields { reference: EntityReference | null; } export type PublishedReferencesComponent = Component<'ReferencesComponent', PublishedReferencesComponentFields>; export declare function isPublishedReferencesComponent(component: Component<string, object> | PublishedReferencesComponent): component is PublishedReferencesComponent; export declare function assertIsPublishedReferencesComponent(component: Component<string, object> | PublishedReferencesComponent): asserts component is PublishedReferencesComponent;