@vista.io/vista-api-client
Version:
NodeJS implementation of the Vista API.
114 lines (93 loc) • 3.66 kB
JavaScript
import expect from 'expect.js';
import { describe, it } from 'mocha';
import { client, testId, orgId, rtDictToPerms } from './setup.js';
const uid_base = `${testId}_usersets`;
describe('Usersets', () => {
describe('create', () => {
it('should return proper response', async () => {
const usid = `${uid_base}_userset_0`;
const r = await client.usersets.create(usid, orgId);
expect(r).to.have.key('id');
expect(r).to.have.key('parents');
});
});
describe('inherit', () => {
it('should return proper response', async () => {
const usid_parent = `${uid_base}_userset_parent_1`;
const usid_child = `${uid_base}_userset_child_1`;
await client.usersets.create(usid_parent, orgId);
await client.usersets.create(usid_child, orgId);
const r = await client.usersets.inherit(usid_child, usid_parent);
expect(r).to.be.an('object');
expect(r).to.be.empty();
});
});
describe('grantAction', () => {
it('should return proper response', async () => {
const rt = `${uid_base}_rt_2`;
await client.resourceTypes.upsert(rt, ['read'], []);
const usid = `${uid_base}_userset_2`;
await client.usersets.create(usid, orgId);
const r = await client.usersets.grantAction(usid, 'read', 'rid_2', rt);
expect(r).to.have.key('userset_id');
expect(r).to.have.key('relation');
expect(r).to.have.key('resource_id');
expect(r).to.have.key('resource_type');
expect(r).to.have.key('attribute');
});
});
describe('revokeAction', () => {
it('should return proper response', async () => {
const rt = `${uid_base}_rt_3`;
await client.resourceTypes.upsert(rt, ['read'], []);
const usid = `${uid_base}_userset_3`;
await client.usersets.create(usid, orgId);
await client.usersets.grantAction(usid, 'read', 'rid_3', rt);
const r = await client.usersets.revokeAction(usid, 'read', 'rid_3', rt);
expect(r).to.have.key('userset_id');
expect(r).to.have.key('relation');
expect(r).to.have.key('resource_id');
expect(r).to.have.key('resource_type');
});
});
describe('grantRole', () => {
it('should return proper response', async () => {
const rt = `${uid_base}_rt_4`;
await client.resourceTypes.upsert(rt, ['read'], []);
const role = `${uid_base}_role_4`;
await client.roles.upsert(role, rtDictToPerms({
[rt]: {
'*': ['read'],
},
}));
const usid = `${uid_base}_userset_4`;
await client.usersets.create(usid, orgId);
const r = await client.usersets.grantRole(usid, role, 'rid_4', rt);
expect(r).to.have.key('userset_id');
expect(r).to.have.key('relation');
expect(r).to.have.key('resource_id');
expect(r).to.have.key('resource_type');
expect(r).to.have.key('attribute');
});
});
describe('revokeRole', () => {
it('should return proper response', async () => {
const rt = `${uid_base}_rt_5`;
await client.resourceTypes.upsert(rt, ['read'], []);
const role = `${uid_base}_role_5`;
await client.roles.upsert(role, rtDictToPerms({
[rt]: {
'*': ['read'],
},
}));
const usid = `${uid_base}_userset_5`;
await client.usersets.create(usid, orgId);
await client.usersets.grantRole(usid, role, 'rid_5', rt);
const r = await client.usersets.revokeRole(usid, role, 'rid_5', rt);
expect(r).to.have.key('userset_id');
expect(r).to.have.key('relation');
expect(r).to.have.key('resource_id');
expect(r).to.have.key('resource_type');
});
});
});