openmct/src/plugins/importFromJSONAction/ImportFromJSONActionSpec.js
Jesse Mazzella caa7bc6fae
chore: add prettier (2/3): apply formatting, re-enable lint ci step (#6682)
* style: apply prettier formatting

* fix: re-enable lint ci check
2023-05-18 21:54:46 +00:00

123 lines
3.8 KiB
JavaScript

/*****************************************************************************
* Open MCT, Copyright (c) 2014-2023, 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 ImportFromJSONAction from './ImportFromJSONAction';
import { createOpenMct, resetApplicationState } from 'utils/testing';
let openmct;
let importFromJSONAction;
describe('The import JSON action', function () {
beforeEach((done) => {
openmct = createOpenMct();
openmct.on('start', done);
openmct.startHeadless();
importFromJSONAction = new ImportFromJSONAction(openmct);
});
afterEach(() => {
return resetApplicationState(openmct);
});
it('has import as JSON action', () => {
expect(importFromJSONAction.key).toBe('import.JSON');
});
it('applies to return true for objects with composition', function () {
const domainObject = {
composition: [],
name: 'Unnamed Folder',
type: 'folder',
location: '9f6c9dae-51c3-401d-92f1-c812de942922',
modified: 1637021471624,
persisted: 1637021471624,
id: '84438cda-a071-48d1-b9bf-d77bd53e59ba',
identifier: {
namespace: '',
key: '84438cda-a071-48d1-b9bf-d77bd53e59ba'
}
};
const objectPath = [domainObject];
spyOn(openmct.composition, 'get').and.returnValue(true);
expect(importFromJSONAction.appliesTo(objectPath)).toBe(true);
});
it('applies to return false for objects without composition', function () {
const domainObject = {
telemetry: {
period: 10,
amplitude: 1,
offset: 0,
dataRateInHz: 1,
phase: 0,
randomness: 0
},
name: 'Unnamed Sine Wave Generator',
type: 'generator',
location: '84438cda-a071-48d1-b9bf-d77bd53e59ba',
modified: 1637021471172,
identifier: {
namespace: '',
key: 'c102b6e1-3c81-4618-926a-56cc310925f6'
},
persisted: 1637021471172
};
const objectPath = [domainObject];
spyOn(openmct.types, 'get').and.returnValue({});
spyOn(openmct.composition, 'get').and.returnValue(false);
expect(importFromJSONAction.appliesTo(objectPath)).toBe(false);
});
it('calls showForm on invoke ', function () {
const domainObject = {
composition: [],
name: 'Unnamed Folder',
type: 'folder',
location: '9f6c9dae-51c3-401d-92f1-c812de942922',
modified: 1637021471624,
persisted: 1637021471624,
id: '84438cda-a071-48d1-b9bf-d77bd53e59ba',
identifier: {
namespace: '',
key: '84438cda-a071-48d1-b9bf-d77bd53e59ba'
}
};
const objectPath = [domainObject];
spyOn(openmct.forms, 'showForm').and.returnValue(Promise.resolve({}));
spyOn(importFromJSONAction, 'onSave').and.returnValue(Promise.resolve({}));
importFromJSONAction.invoke(objectPath);
expect(openmct.forms.showForm).toHaveBeenCalled();
});
});