mirror of
https://github.com/bigcapitalhq/bigcapital.git
synced 2026-02-15 20:30:33 +00:00
Custom fields feature.
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
import { create, expect } from '~/testInit';
|
||||
import Resource from '@/models/Resource';
|
||||
import '@/models/View';
|
||||
import '@/models/ResourceField';
|
||||
|
||||
describe('Model: Resource', () => {
|
||||
it('Resource model may has many associated views.', async () => {
|
||||
const view = await create('view');
|
||||
await create('view', { resource_id: view.resource_id });
|
||||
|
||||
const resourceModel = await Resource.where('id', view.resource_id).fetch();
|
||||
const resourceViews = await resourceModel.views().fetch();
|
||||
|
||||
expect(resourceViews).to.have.lengthOf(2);
|
||||
});
|
||||
|
||||
it('Resource model may has many fields.', async () => {
|
||||
const resourceField = await create('resource_field');
|
||||
|
||||
const resourceModel = await Resource.where('id', resourceField.resource_id).fetch();
|
||||
const resourceFields = await resourceModel.fields().fetch();
|
||||
|
||||
expect(resourceFields).to.have.lengthOf(1);
|
||||
});
|
||||
});
|
||||
|
||||
18
server/tests/models/ResourceField.test.js
Normal file
18
server/tests/models/ResourceField.test.js
Normal file
@@ -0,0 +1,18 @@
|
||||
import { create, expect } from '~/testInit';
|
||||
import Resource from '@/models/Resource';
|
||||
import ResourceField from '@/models/ResourceField';
|
||||
import '@/models/View';
|
||||
|
||||
describe('Model: ResourceField', () => {
|
||||
it('Resource field model may belongs to associated resource.', async () => {
|
||||
const resourceField = await create('resource_field');
|
||||
|
||||
const resourceFieldModel = await ResourceField.where('id', resourceField.id).fetch();
|
||||
const resourceModel = resourceFieldModel.resource().fetch();
|
||||
|
||||
const foundResource = await Resource.where('id', resourceField.resource_id).fetch();
|
||||
|
||||
expect(resourceModel.attributes.id).equals(foundResource.id);
|
||||
expect(resourceModel.attributes.name).equals(foundResource.name);
|
||||
});
|
||||
});
|
||||
42
server/tests/models/View.test.js
Normal file
42
server/tests/models/View.test.js
Normal file
@@ -0,0 +1,42 @@
|
||||
import { create, expect } from '~/testInit';
|
||||
import View from '@/models/View';
|
||||
import Resource from '@/models/Resource';
|
||||
import '@/models/ResourceField';
|
||||
import '@/models/ViewRole';
|
||||
|
||||
|
||||
describe('Model: View', () => {
|
||||
it('View model may has many associated resource.', async () => {
|
||||
const view = await create('view');
|
||||
|
||||
const viewModel = await View.where('id', view.id).fetch();
|
||||
const viewResource = await viewModel.resource().fetch();
|
||||
|
||||
const foundResource = await Resource.where('id', view.resource_id).fetch();
|
||||
|
||||
expect(viewResource.attributes.id).equals(foundResource.id);
|
||||
expect(viewResource.attributes.name).equals(foundResource.attributes.name);
|
||||
});
|
||||
|
||||
it('View model may has many associated view roles.', async () => {
|
||||
const view = await create('view');
|
||||
await create('view_role', { view_id: view.id });
|
||||
await create('view_role', { view_id: view.id });
|
||||
|
||||
const viewModel = await View.where('id', view.id).fetch();
|
||||
const viewRoles = await viewModel.viewRoles().fetch();
|
||||
|
||||
expect(viewRoles).to.have.lengthOf(2);
|
||||
});
|
||||
|
||||
it('View model may has many associated view columns', async () => {
|
||||
const view = await create('view');
|
||||
await create('view_has_columns', { view_id: view.id });
|
||||
await create('view_has_columns', { view_id: view.id });
|
||||
|
||||
const viewModel = await View.where('id', view.id).fetch();
|
||||
const viewColumns = await viewModel.columns().fetch();
|
||||
|
||||
expect(viewColumns).to.have.lengthOf(2);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user