mirror of
https://github.com/strapi/strapi.git
synced 2025-08-03 06:18:37 +00:00
90 lines
2.8 KiB
JavaScript
90 lines
2.8 KiB
JavaScript
'use strict';
|
|
|
|
const { getRelationalFields } = require('../relations');
|
|
|
|
describe('Relations', () => {
|
|
describe('getRelationalFields', () => {
|
|
const testData = [
|
|
['empty', [], []],
|
|
['oneToMany', [{ nature: 'oneToMany', alias: 'name' }], ['name']],
|
|
['manyToMany', [{ nature: 'manyToMany', alias: 'name' }], ['name']],
|
|
['manyWay', [{ nature: 'manyWay', alias: 'name' }], ['name']],
|
|
['manyToOne', [{ nature: 'manyToOne', alias: 'name' }], ['name']],
|
|
['oneWay', [{ nature: 'oneWay', alias: 'name' }], ['name']],
|
|
['oneToOne', [{ nature: 'oneToOne', alias: 'name' }], ['name']],
|
|
[
|
|
'oneToMany & manyMorphToOne',
|
|
[
|
|
{ nature: 'oneToMany', alias: 'name' },
|
|
{ nature: 'manyMorphToOne', alias: 'name' },
|
|
],
|
|
['name'],
|
|
],
|
|
[
|
|
'manyToMany & manyMorphToOne',
|
|
[
|
|
{ nature: 'manyToMany', alias: 'name' },
|
|
{ nature: 'manyMorphToOne', alias: 'name' },
|
|
],
|
|
['name'],
|
|
],
|
|
[
|
|
'manyWay & manyMorphToOne',
|
|
[
|
|
{ nature: 'manyWay', alias: 'name' },
|
|
{ nature: 'manyMorphToOne', alias: 'name' },
|
|
],
|
|
['name'],
|
|
],
|
|
[
|
|
'manyToOne & manyMorphToOne',
|
|
[
|
|
{ nature: 'manyToOne', alias: 'name' },
|
|
{ nature: 'manyMorphToOne', alias: 'name' },
|
|
],
|
|
['name'],
|
|
],
|
|
[
|
|
'oneWay & manyMorphToOne',
|
|
[
|
|
{ nature: 'oneWay', alias: 'name' },
|
|
{ nature: 'manyMorphToOne', alias: 'name' },
|
|
],
|
|
['name'],
|
|
],
|
|
[
|
|
'oneToOne & manyMorphToOne',
|
|
[
|
|
{ nature: 'oneToOne', alias: 'name' },
|
|
{ nature: 'manyMorphToOne', alias: 'name' },
|
|
],
|
|
['name'],
|
|
],
|
|
[
|
|
'all possible associations',
|
|
[
|
|
{ nature: 'oneToMany', alias: 'name1' },
|
|
{ nature: 'manyToMany', alias: 'name2' },
|
|
{ nature: 'manyWay', alias: 'name3' },
|
|
{ nature: 'manyToOne', alias: 'name4' },
|
|
{ nature: 'oneWay', alias: 'name5' },
|
|
{ nature: 'oneToOne', alias: 'name6' },
|
|
{ nature: 'manyToManyMorph', alias: 'name7' },
|
|
{ nature: 'manyToOneMorph', alias: 'name8' },
|
|
{ nature: 'oneToManyMorph', alias: 'name9' },
|
|
{ nature: 'oneToOneMorph', alias: 'name10' },
|
|
{ nature: 'oneMorphToMany', alias: 'name11' },
|
|
{ nature: 'oneMorphToOne', alias: 'name12' },
|
|
{ nature: 'manyMorphToOne', alias: 'name13' },
|
|
{ nature: 'manyMorphToMany', alias: 'name14' },
|
|
],
|
|
['name1', 'name2', 'name3', 'name4', 'name5', 'name6'],
|
|
],
|
|
];
|
|
|
|
test.each(testData)('%s', (name, associations, expectedResult) => {
|
|
expect(getRelationalFields({ associations })).toEqual(expectedResult);
|
|
});
|
|
});
|
|
});
|