@dossierhq/integration-test
Version:
Integration test to ensure that different Dossier database adapters work as expected.
214 lines • 5.65 kB
JavaScript
/// <reference types="./Fixtures.d.ts" />
import { EntityStatus, normalizeEntityFields, } from '@dossierhq/core';
import { assertEquals } from '../Asserts.js';
export const CHANGE_VALIDATIONS_CREATE = {
info: {
type: 'ChangeValidations',
name: 'ChangeValidations name',
},
fields: {},
};
export const LOCATIONS_CREATE = {
info: {
type: 'Locations',
name: 'Locations name',
},
fields: {},
};
export const LOCATIONS_ADMIN_ENTITY = {
id: 'REPLACE',
info: {
type: 'Locations',
name: 'Locations name',
version: 1,
authKey: '',
status: EntityStatus.draft,
valid: true,
validPublished: null,
createdAt: new Date('2021-08-17T07:51:25.56Z'),
updatedAt: new Date('2021-08-17T07:51:25.56Z'),
},
fields: { location: null, locationList: null, locationAdminOnly: null },
};
export const MIGRATIONS_ENTITY_CREATE = {
info: { name: 'MigrationEntity name', type: 'MigrationEntity' },
fields: {},
};
export const REFERENCES_CREATE = {
info: {
type: 'References',
name: 'References name',
},
fields: {},
};
export const REFERENCES_ADMIN_ENTITY = {
id: 'REPLACE',
info: {
type: 'References',
name: 'References name',
version: 1,
authKey: '',
status: EntityStatus.draft,
valid: true,
validPublished: null,
createdAt: new Date('2021-08-17T07:51:25.56Z'),
updatedAt: new Date('2021-08-17T07:51:25.56Z'),
},
fields: { any: null, anyList: null, anyAdminOnly: null, titleOnly: null },
};
export const RICH_TEXTS_CREATE = {
info: {
type: 'RichTexts',
name: 'RichTexts name',
},
fields: {},
};
export const RICH_TEXTS_ADMIN_ENTITY = {
id: 'REPLACE',
info: {
type: 'RichTexts',
name: 'RichTexts name',
authKey: '',
version: 1,
status: EntityStatus.draft,
valid: true,
validPublished: null,
createdAt: new Date('2021-08-17T07:51:25.56Z'),
updatedAt: new Date('2021-08-17T07:51:25.56Z'),
},
fields: {
richText: null,
richTextList: null,
richTextMinimal: null,
richTextLimitedTypes: null,
},
};
export const STRINGS_CREATE = {
info: {
type: 'Strings',
name: 'Strings name',
},
fields: { multiline: 'Hello\nWorld' },
};
export const STRINGS_ADMIN_ENTITY = {
id: 'REPLACE',
info: {
type: 'Strings',
name: 'Strings name',
version: 1,
authKey: '',
status: EntityStatus.draft,
valid: true,
validPublished: null,
createdAt: new Date('2021-08-17T07:51:25.56Z'),
updatedAt: new Date('2021-08-17T07:51:25.56Z'),
},
fields: {
multiline: 'Hello\nWorld',
stringAdminOnly: null,
pattern: null,
patternList: null,
values: null,
valuesList: null,
unique: null,
uniqueAdminOnly: null,
uniqueGenericIndex: null,
},
};
export const SUBJECT_ONLY_CREATE = {
info: {
type: 'SubjectOnly',
name: 'SubjectOnly name',
authKey: 'subject',
},
fields: { message: 'Message' },
};
export const SUBJECT_ONLY_UPSERT = {
id: 'REPLACE',
...SUBJECT_ONLY_CREATE,
};
export const SUBJECT_ONLY_ADMIN_ENTITY = {
id: 'REPLACE',
info: {
type: 'SubjectOnly',
name: 'SubjectOnly name',
version: 1,
authKey: 'subject',
status: EntityStatus.draft,
valid: true,
validPublished: null,
createdAt: new Date('2021-08-17T07:51:25.56Z'),
updatedAt: new Date('2021-08-17T07:51:25.56Z'),
},
fields: { message: 'Message' },
};
export const SUBJECT_OR_DEFAULT_CREATE = {
info: {
type: 'SubjectOrDefaultAuthKey',
name: 'SubjectOrDefaultAuthKey name',
authKey: 'subject',
},
fields: { message: 'Message' },
};
export const TITLE_ONLY_CREATE = {
info: {
type: 'TitleOnly',
name: 'TitleOnly name',
},
fields: { title: 'Title' },
};
export const TITLE_ONLY_UPSERT = {
id: 'REPLACE',
...TITLE_ONLY_CREATE,
};
export const TITLE_ONLY_ADMIN_ENTITY = {
id: 'REPLACE',
info: {
type: 'TitleOnly',
name: 'TitleOnly name',
version: 1,
authKey: '',
status: EntityStatus.draft,
valid: true,
validPublished: null,
createdAt: new Date('2021-08-17T07:51:25.56Z'),
updatedAt: new Date('2021-08-17T07:51:25.56Z'),
},
fields: { title: 'Title' },
};
export const TITLE_ONLY_PUBLISHED_ENTITY = {
id: 'REPLACE',
info: {
type: 'TitleOnly',
name: 'TitleOnly name',
authKey: '',
valid: true,
createdAt: new Date('2021-08-17T07:51:25.56Z'),
},
fields: { title: 'Title' },
};
export const VALUE_ITEMS_CREATE = {
info: {
type: 'Components',
name: 'Components name',
},
fields: {},
};
export function adminToPublishedEntity(schema, entity) {
assertEquals(entity.info.status, EntityStatus.published);
const result = normalizeEntityFields(schema.toPublishedSchema(), [], entity);
const { id, info: { name, type, authKey, validPublished, createdAt }, } = entity;
const publishedEntity = {
id,
info: {
type,
name,
authKey,
valid: validPublished ?? false,
createdAt,
},
fields: result.valueOrThrow(),
};
return publishedEntity;
}
//# sourceMappingURL=Fixtures.js.map