mirror of
https://github.com/datahub-project/datahub.git
synced 2025-10-13 09:54:10 +00:00

* Module consolidation on datahub-web - clean up to some OS logic from previous update - initial implementation of virtual assistant * Fix accidental change to datahub user module license
88 lines
3.1 KiB
TypeScript
88 lines
3.1 KiB
TypeScript
import { module, test } from 'qunit';
|
|
import { setupTest } from 'ember-qunit';
|
|
import { FeatureEntity } from '@datahub/data-models/entity/feature/feature-entity';
|
|
import EntityListsManager from '@datahub/shared/services/entity-lists-manager';
|
|
import { MockEntity } from '@datahub/data-models/entity/mock/mock-entity';
|
|
|
|
module('Unit | Service | entity-lists-manager', function(hooks): void {
|
|
setupTest(hooks);
|
|
|
|
test('it adds and removes an entity', function(assert): void {
|
|
const service: EntityListsManager = this.owner.lookup('service:entity-lists-manager');
|
|
const testEntity = new FeatureEntity('urn');
|
|
|
|
assert.ok(service, 'Expected entity-lists-manager to be a service');
|
|
|
|
// Add an entity to list
|
|
service.addToList(testEntity);
|
|
|
|
assert.ok(Array.isArray(service.entities[FeatureEntity.displayName]), 'Expected entity list name to be an Array');
|
|
assert.ok(service.entities[FeatureEntity.displayName].length === 1, 'Expected entity list to contain 1 entity');
|
|
|
|
// Add same entity to list
|
|
service.addToList(testEntity);
|
|
|
|
assert.ok(
|
|
service.entities[FeatureEntity.displayName].length === 1,
|
|
'Expected adding pre-existing entity to be a noop, list length should still be 1'
|
|
);
|
|
|
|
// Remove entity from list
|
|
service.removeFromList(testEntity);
|
|
|
|
assert.ok(
|
|
service.entities[FeatureEntity.displayName].length === 0,
|
|
'Expected entity list to be empty when removeFromList is called with sole entity'
|
|
);
|
|
});
|
|
|
|
test('it adds multiple entities and correctly groups entities', function(assert): void {
|
|
const service: EntityListsManager = this.owner.lookup('service:entity-lists-manager');
|
|
const testFeatures = [new FeatureEntity('feature-urn-a'), new FeatureEntity('feature-urn-b')];
|
|
const testMetrics = [new MockEntity('metric-urn-a'), new MockEntity('metric-urn-b')];
|
|
|
|
service.supportedListEntities = [MockEntity.displayName, FeatureEntity.displayName];
|
|
|
|
// Add multiple entity types to list
|
|
service.addToList([...testFeatures, ...testMetrics]);
|
|
|
|
assert.equal(
|
|
service.entities[FeatureEntity.displayName].length,
|
|
testMetrics.length,
|
|
`Expected test features to be grouped under ${FeatureEntity.displayName}`
|
|
);
|
|
assert.equal(
|
|
service.entities[MockEntity.displayName].length,
|
|
testFeatures.length,
|
|
`Expected testMetrics to be grouped under ${MockEntity.displayName}`
|
|
);
|
|
|
|
// Remove a single entity from list
|
|
service.removeFromList(testMetrics[1]);
|
|
|
|
assert.equal(
|
|
service.entities[MockEntity.displayName].length,
|
|
testMetrics.length - 1,
|
|
`Expected stored entities for ${MockEntity.displayName} to be reduced by 1`
|
|
);
|
|
|
|
// Re-add removed entity from list
|
|
service.addToList(testMetrics[1]);
|
|
|
|
assert.equal(
|
|
service.entities[MockEntity.displayName].length,
|
|
testMetrics.length,
|
|
'Expected a previously removed entity to be eligible for re-addition'
|
|
);
|
|
|
|
// Remove multiple entities from list
|
|
service.removeFromList(testFeatures);
|
|
|
|
assert.equal(
|
|
service.entities[FeatureEntity.displayName].length,
|
|
0,
|
|
'Expected removeFromList to remove all entities in argument list'
|
|
);
|
|
});
|
|
});
|