combined tests in one pluginSpec file

This commit is contained in:
Joel McKinnon 2020-01-03 09:13:17 -08:00
parent 1ee6ecf3ae
commit 57c671a42e
3 changed files with 81 additions and 106 deletions

View File

@ -22,16 +22,6 @@
import ConditionSetViewProvider from './ConditionSetViewProvider.js';
export default function ConditionPlugin() {
const conditionSetType = {
name: 'Condition Set',
key: 'conditionSet',
description: 'A set of one or more conditions based on user-specified criteria.',
creatable: true,
cssClass: 'icon-folder',
initialize: function (domainObject) {
domainObject.composition = [];
}
};
return function install(openmct) {
openmct.types.addType('condition', {
@ -44,7 +34,16 @@ export default function ConditionPlugin() {
}
});
openmct.types.addType('conditionSet', conditionSetType);
openmct.types.addType('conditionSet', {
name: 'Condition Set',
key: 'conditionSet',
description: 'A set of one or more conditions based on user-specified criteria.',
creatable: true,
cssClass: 'icon-folder',
initialize: function (domainObject) {
domainObject.composition = [];
}
});
openmct.objectViews.addProvider(new ConditionSetViewProvider(openmct));

View File

@ -25,31 +25,39 @@ import ConditionPlugin from "./plugin";
let openmct;
let conditionDefinition;
let conditionSetDefinition;
let mockDomainObject;
let mockConditionObject = {
name: 'Condition',
key: 'condition',
creatable: false
};
describe('the plugin', function () {
beforeEach(() => {
openmct = createOpenMct();
openmct.install(new ConditionPlugin());
conditionDefinition = openmct.types.get('condition').definition;
conditionSetDefinition = openmct.types.get('conditionSet').definition;
});
it('defines an object type with the correct key', () => {
let mockConditionObject = {
name: 'Condition',
key: 'condition',
creatable: false
};
it('defines a condition object type with the correct key', () => {
expect(conditionDefinition.key).toEqual(mockConditionObject.key);
});
it('is not creatable', () => {
expect(conditionDefinition.creatable).toEqual(mockConditionObject.creatable);
let mockConditionSetObject = {
name: 'Condition Set',
key: 'conditionSet',
creatable: true
};
it('defines a conditionSet object type with the correct key', () => {
expect(conditionSetDefinition.key).toEqual(mockConditionSetObject.key);
});
describe('the object', () => {
describe('the condition object', () => {
beforeEach(() => {
mockDomainObject = {
identifier: {
@ -62,9 +70,62 @@ describe('the plugin', function () {
conditionDefinition.initialize(mockDomainObject);
});
it('is not creatable', () => {
expect(conditionDefinition.creatable).toEqual(mockConditionObject.creatable);
});
it('initializes with an empty composition list', () => {
expect(mockDomainObject.composition instanceof Array).toBeTrue();
expect(mockDomainObject.composition.length).toEqual(0);
});
});
describe('the conditionSet object', () => {
let element;
let child;
beforeEach((done) => {
const appHolder = document.createElement('div');
appHolder.style.width = '640px';
appHolder.style.height = '480px';
element = document.createElement('div');
child = document.createElement('div');
element.appendChild(child);
mockDomainObject = {
identifier: {
key: 'testConditionSetKey',
namespace: ''
},
type: 'conditionSet'
};
conditionSetDefinition.initialize(mockDomainObject);
openmct.on('start', done);
openmct.start(appHolder);
});
it('is not creatable', () => {
expect(conditionSetDefinition.creatable).toEqual(mockConditionSetObject.creatable);
});
it('initializes with an empty composition list', () => {
expect(mockDomainObject.composition instanceof Array).toBeTrue();
expect(mockDomainObject.composition.length).toEqual(0);
});
it('provides a view', () => {
const testViewObject = {
id:"test-object",
type: "conditionSet"
};
const applicableViews = openmct.objectViews.get(testViewObject);
let conditionSetView = applicableViews.find((viewProvider) => viewProvider.key === 'conditionSet.view');
expect(conditionSetView).toBeDefined();
});
});
});

View File

@ -1,85 +0,0 @@
/*****************************************************************************
* Open MCT, Copyright (c) 2014-2019, United States Government
* as represented by the Administrator of the National Aeronautics and Space
* Administration. All rights reserved.
*
* Open MCT is licensed under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* http://www.apache.org/licenses/LICENSE-2.0.
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
*
* Open MCT includes source code licensed under additional open source
* licenses. See the Open Source Licenses file (LICENSES.md) included with
* this source code distribution or the Licensing information page available
* at runtime from the About dialog for additional information.
*****************************************************************************/
import { createOpenMct } from 'testTools';
import ConditionSetPlugin from './plugin';
describe('The plugin', () => {
let openmct;
let conditionSetDefinition;
let element;
let child;
beforeEach((done) => {
const appHolder = document.createElement('div');
appHolder.style.width = '640px';
appHolder.style.height = '480px';
openmct = createOpenMct();
element = document.createElement('div');
child = document.createElement('div');
element.appendChild(child);
openmct.install(new ConditionSetPlugin());
conditionSetDefinition = openmct.types.get('conditionSet').definition;
openmct.on('start', done);
openmct.start(appHolder);
});
it('defines an object type with the correct key', () => {
expect(conditionSetDefinition.key).toEqual('conditionSet');
});
it('defines an object type that is creatable', () => {
expect(conditionSetDefinition.creatable).toBeTrue();
});
it('provides a view', () => {
const testViewObject = {
id:"test-object",
type: "conditionSet"
};
const applicableViews = openmct.objectViews.get(testViewObject);
let conditionSetView = applicableViews.find((viewProvider) => viewProvider.key === 'conditionSet.view');
expect(conditionSetView).toBeDefined();
});
describe('provides an object', () => {
it('which initializes with an empty composition list', () => {
let mockDomainObject = {
identifier: {
key: 'test-key',
namespace: ''
},
type: 'conditionSet'
};
conditionSetDefinition.initialize(mockDomainObject);
expect(mockDomainObject.composition instanceof Array).toBeTrue();
expect(mockDomainObject.composition.length).toEqual(0);
});
});
});