Skip to content

Commit

Permalink
Feat: Add private option field for relations (#8149)
Browse files Browse the repository at this point in the history
* feat(content-type): add private option to relation field

Signed-off-by: tanmoyopenroot <tanmoy.openroot@gmail.com>

* test(content-type): add test for private option in relation field

Signed-off-by: tanmoyopenroot <tanmoy.openroot@gmail.com>
  • Loading branch information
tanmoyopenroot committed Oct 2, 2020
1 parent 4844ba9 commit 012902d
Show file tree
Hide file tree
Showing 4 changed files with 56 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -331,6 +331,7 @@ const forms = {
const nameValue = get(data, 'name', null);
const relationItems = [
[fields.divider],
[fields.private],
[fields.unique],
[
{
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
import fields from '../forms';

describe('forms', () => {
it('should contain private field in relation input type', () => {
const { items } = fields.attribute.form.advanced({}, 'relation', null);

expect(
items.find(relationItem => relationItem.find(item => item.name === 'private')).length
).toBeTruthy();
});
});
Original file line number Diff line number Diff line change
Expand Up @@ -189,4 +189,47 @@ describe('Content Type Builder - Content types', () => {
expect(updateRes.body.error).toMatch('multiple entries in DB');
});
});

describe('Private relation field', () => {
const singleTypeUID = 'application::test-single-type.test-single-type';

test('should add a relation field', async () => {
const res = await rq({
method: 'PUT',
url: `/content-type-builder/content-types/${singleTypeUID}`,
body: {
contentType: {
kind: 'singleType',
name: 'test-collection',
attributes: {
relation: {
private: true,
nature: 'oneWay',
target: 'plugins::users-permissions.user',
targetAttribute: 'test',
},
},
},
},
});

expect(res.statusCode).toBe(201);
expect(res.body).toEqual({
data: {
uid: singleTypeUID,
},
});
});

test('should contain a private relation field', async () => {
const res = await rq({
method: 'GET',
url: `/content-type-builder/content-types/${singleTypeUID}`,
});

expect(res.statusCode).toBe(200);
expect(res.body.data.schema.attributes.relation).toBeDefined();
expect(res.body.data.schema.attributes.relation.private).toBeTruthy();
});
});
});
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,7 @@ const formatAttribute = (key, attribute, { model }) => {
['attributes', attribute.via, 'columnName'],
undefined
),
private: attribute.private ? true : false,
unique: attribute.unique ? true : false,
autoPopulate: attribute.autoPopulate,
};
Expand Down

0 comments on commit 012902d

Please sign in to comment.