mirror of
https://github.com/strapi/strapi.git
synced 2025-11-10 15:19:00 +00:00
added tests for restore
This commit is contained in:
parent
2ce7a23327
commit
afbfffe424
@ -107,61 +107,6 @@ describe('Local Strapi Source Destination', () => {
|
|||||||
expect(deleteAllSpy).toBeCalledTimes(1);
|
expect(deleteAllSpy).toBeCalledTimes(1);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('Should delete only chosen contentTypes', async () => {
|
|
||||||
const entities = [
|
|
||||||
{
|
|
||||||
entity: { id: 1, title: 'My first foo' },
|
|
||||||
contentType: { uid: 'foo' },
|
|
||||||
},
|
|
||||||
{
|
|
||||||
entity: { id: 4, title: 'Another Foo' },
|
|
||||||
contentType: { uid: 'foo' },
|
|
||||||
},
|
|
||||||
{
|
|
||||||
entity: { id: 12, title: 'Last foo' },
|
|
||||||
contentType: { uid: 'foo' },
|
|
||||||
},
|
|
||||||
{
|
|
||||||
entity: { id: 1, age: 21 },
|
|
||||||
contentType: { uid: 'bar' },
|
|
||||||
},
|
|
||||||
{
|
|
||||||
entity: { id: 2, age: 42 },
|
|
||||||
contentType: { uid: 'bar' },
|
|
||||||
},
|
|
||||||
{
|
|
||||||
entity: { id: 7, age: 84 },
|
|
||||||
contentType: { uid: 'bar' },
|
|
||||||
},
|
|
||||||
{
|
|
||||||
entity: { id: 9, age: 0 },
|
|
||||||
contentType: { uid: 'bar' },
|
|
||||||
},
|
|
||||||
];
|
|
||||||
const deleteMany = jest.fn(async (uid: string) => ({
|
|
||||||
count: entities.filter((entity) => entity.contentType.uid === uid).length,
|
|
||||||
}));
|
|
||||||
const provider = createLocalStrapiDestinationProvider({
|
|
||||||
getStrapi: getStrapiFactory({
|
|
||||||
contentTypes: getContentTypes(),
|
|
||||||
entityService: {
|
|
||||||
deleteMany,
|
|
||||||
},
|
|
||||||
}),
|
|
||||||
strategy: 'restore',
|
|
||||||
restore: {
|
|
||||||
/* @ts-ignore: disable-next-line */
|
|
||||||
contentTypes: [getContentTypes()['foo']],
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
||||||
const deleteAllSpy = jest.spyOn(restoreApi, 'deleteAllRecords');
|
|
||||||
await provider.bootstrap();
|
|
||||||
await provider.beforeStreaming();
|
|
||||||
|
|
||||||
expect(deleteAllSpy).toBeCalledTimes(1);
|
|
||||||
});
|
|
||||||
|
|
||||||
test('Should not delete if it is a merge strategy', async () => {
|
test('Should not delete if it is a merge strategy', async () => {
|
||||||
const provider = createLocalStrapiDestinationProvider({
|
const provider = createLocalStrapiDestinationProvider({
|
||||||
getStrapi: getStrapiFactory({}),
|
getStrapi: getStrapiFactory({}),
|
||||||
|
|||||||
@ -0,0 +1,68 @@
|
|||||||
|
import { deleteAllRecords } from '../restore';
|
||||||
|
import { getStrapiFactory, getContentTypes } from '../../test-utils';
|
||||||
|
|
||||||
|
const entities = [
|
||||||
|
{
|
||||||
|
entity: { id: 1, title: 'My first foo' },
|
||||||
|
contentType: { uid: 'foo' },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
entity: { id: 4, title: 'Another Foo' },
|
||||||
|
contentType: { uid: 'foo' },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
entity: { id: 12, title: 'Last foo' },
|
||||||
|
contentType: { uid: 'foo' },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
entity: { id: 1, age: 21 },
|
||||||
|
contentType: { uid: 'bar' },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
entity: { id: 2, age: 42 },
|
||||||
|
contentType: { uid: 'bar' },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
entity: { id: 7, age: 84 },
|
||||||
|
contentType: { uid: 'bar' },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
entity: { id: 9, age: 0 },
|
||||||
|
contentType: { uid: 'bar' },
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
describe('Restore ', () => {
|
||||||
|
test('Should delete all contentTypes', async () => {
|
||||||
|
const deleteMany = jest.fn(async (uid: string) => ({
|
||||||
|
count: entities.filter((entity) => entity.contentType.uid === uid).length,
|
||||||
|
}));
|
||||||
|
const strapi = getStrapiFactory({
|
||||||
|
contentTypes: getContentTypes(),
|
||||||
|
entityService: {
|
||||||
|
deleteMany,
|
||||||
|
},
|
||||||
|
})();
|
||||||
|
|
||||||
|
const { count } = await deleteAllRecords(strapi);
|
||||||
|
expect(count).toBe(entities.length);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('Should only delete chosen contentTypes', async () => {
|
||||||
|
const deleteMany = jest.fn(async (uid: string) => ({
|
||||||
|
count: entities.filter((entity) => entity.contentType.uid === uid).length,
|
||||||
|
}));
|
||||||
|
const strapi = getStrapiFactory({
|
||||||
|
contentTypes: getContentTypes(),
|
||||||
|
entityService: {
|
||||||
|
deleteMany,
|
||||||
|
},
|
||||||
|
})();
|
||||||
|
|
||||||
|
const { count } = await deleteAllRecords(strapi, {
|
||||||
|
/* @ts-ignore: disable-next-line */
|
||||||
|
contentTypes: [getContentTypes()['foo']],
|
||||||
|
});
|
||||||
|
expect(count).toBe(3);
|
||||||
|
});
|
||||||
|
});
|
||||||
Loading…
x
Reference in New Issue
Block a user