strapi-plugin-i18n
Version:
This plugin enables to create, to read and to update content in different languages, both from the Admin Panel and from the API
151 lines (131 loc) • 4.3 kB
JavaScript
;
const { after } = require('../field');
describe('i18n - Migration - disable localization on a field', () => {
describe('after', () => {
describe('Should not migrate', () => {
test("Doesn't migrate if model isn't localized", async () => {
const find = jest.fn();
global.strapi = {
query: () => {
find;
},
plugins: {
i18n: {
services: {
'content-types': {
isLocalizedContentType: () => false,
},
},
},
},
};
const model = {};
const previousDefinition = {};
await after({ model, definition: model, previousDefinition });
expect(find).not.toHaveBeenCalled();
});
test("Doesn't migrate if no attribute changed (without i18n)", async () => {
const find = jest.fn();
const getLocalizedAttributes = jest.fn(() => []);
global.strapi = {
query: () => {
find;
},
plugins: {
i18n: {
services: {
'content-types': {
isLocalizedContentType: () => true,
getLocalizedAttributes,
},
},
},
},
};
const model = { attributes: { name: {} } };
const previousDefinition = { attributes: { name: {} } };
await after({ model, definition: model, previousDefinition });
expect(getLocalizedAttributes).toHaveBeenCalledTimes(2);
expect(find).not.toHaveBeenCalled();
});
test("Doesn't migrate if no attribute changed (with i18n)", async () => {
const find = jest.fn();
const getLocalizedAttributes = jest.fn(() => ['name']);
global.strapi = {
query: () => {
find;
},
plugins: {
i18n: {
services: {
'content-types': {
isLocalizedContentType: () => true,
getLocalizedAttributes,
},
},
},
},
};
const model = { attributes: { name: {} } };
const previousDefinition = { attributes: { name: {} } };
await after({ model, definition: model, previousDefinition });
expect(getLocalizedAttributes).toHaveBeenCalledTimes(2);
expect(find).not.toHaveBeenCalled();
});
test("Doesn't migrate if field become localized", async () => {
const find = jest.fn();
const getLocalizedAttributes = jest
.fn()
.mockReturnValueOnce(['name'])
.mockReturnValueOnce([]);
global.strapi = {
query: () => {
find;
},
plugins: {
i18n: {
services: {
'content-types': {
isLocalizedContentType: () => true,
getLocalizedAttributes,
},
},
},
},
};
const model = { attributes: { name: {} } };
const previousDefinition = { attributes: { name: {} } };
await after({ model, definition: model, previousDefinition });
expect(getLocalizedAttributes).toHaveBeenCalledTimes(2);
expect(find).not.toHaveBeenCalled();
});
test("Doesn't migrate if field is deleted", async () => {
const find = jest.fn();
const getLocalizedAttributes = jest
.fn()
.mockReturnValueOnce([])
.mockReturnValueOnce(['name']);
global.strapi = {
query: () => {
find;
},
plugins: {
i18n: {
services: {
'content-types': {
isLocalizedContentType: () => true,
getLocalizedAttributes,
},
},
},
},
};
const model = { attributes: {} };
const previousDefinition = { attributes: { name: {} } };
await after({ model, definition: model, previousDefinition });
expect(getLocalizedAttributes).toHaveBeenCalledTimes(2);
expect(find).not.toHaveBeenCalled();
});
});
});
});