2019-08-31 20:51:14 -07:00
|
|
|
import { module, test } from 'qunit';
|
|
|
|
import { setupTest } from 'ember-qunit';
|
|
|
|
import { DatasetEntity } from '@datahub/data-models/entity/dataset/dataset-entity';
|
|
|
|
import sinonTest from 'ember-sinon-qunit/test-support/test';
|
|
|
|
import Sinon from 'sinon';
|
|
|
|
import { BaseEntity } from '@datahub/data-models/entity/base-entity';
|
2020-08-26 15:44:50 -07:00
|
|
|
import DatasetFactory from '@datahub/data-models/mirage-addon/factories/dataset';
|
2019-08-31 20:51:14 -07:00
|
|
|
|
2020-08-26 15:44:50 -07:00
|
|
|
module('Unit | Utility | entity/dataset/dataset-entity', function(hooks): void {
|
2019-08-31 20:51:14 -07:00
|
|
|
setupTest(hooks);
|
|
|
|
|
2020-08-26 15:44:50 -07:00
|
|
|
test('DatasetEntity class', function(assert): void {
|
2019-08-31 20:51:14 -07:00
|
|
|
const entity = new DatasetEntity('squirtle_urn');
|
|
|
|
assert.ok(entity instanceof BaseEntity, 'Expects entity to be an instance of the BaseEntity');
|
|
|
|
assert.equal(entity.displayName, 'datasets', 'expected entity display name to be Datasets');
|
|
|
|
assert.equal(entity.kind, 'DatasetEntity', 'expected entity kind to be DatasetEntity');
|
|
|
|
assert.equal(entity.urn, 'squirtle_urn', 'expected entity urn to match supplied value squirtle_urn');
|
|
|
|
});
|
|
|
|
|
2020-08-26 15:44:50 -07:00
|
|
|
sinonTest('DatasetEntity readEntity', async function(this: SinonTestContext, assert): Promise<void> {
|
2019-08-31 20:51:14 -07:00
|
|
|
assert.expect(1);
|
2020-08-26 15:44:50 -07:00
|
|
|
const factory = new DatasetFactory<Com.Linkedin.Dataset.Dataset>();
|
|
|
|
const testUrn = 'urn:li:dataset:(urn:li:dataPlatform:platform1,somedir.domedata,PROD)';
|
|
|
|
const testEntity = { ...factory.build(1), uri: testUrn };
|
2019-08-31 20:51:14 -07:00
|
|
|
const requester = this.sandbox.useFakeXMLHttpRequest();
|
|
|
|
let request: Sinon.SinonFakeXMLHttpRequest | undefined;
|
|
|
|
|
2020-08-26 15:44:50 -07:00
|
|
|
requester.onCreate = (req): void => {
|
2019-08-31 20:51:14 -07:00
|
|
|
request = req;
|
|
|
|
};
|
|
|
|
|
|
|
|
const entityRequest = new DatasetEntity(testUrn).readEntity;
|
2020-08-26 15:44:50 -07:00
|
|
|
request && request.respond(200, { 'Content-Type': 'application/json' }, JSON.stringify(testEntity));
|
2019-08-31 20:51:14 -07:00
|
|
|
const entity = await entityRequest;
|
|
|
|
|
2020-08-26 15:44:50 -07:00
|
|
|
assert.equal(entity?.uri, testUrn, 'expected entity urn to match requested urn');
|
2019-08-31 20:51:14 -07:00
|
|
|
requester.restore();
|
|
|
|
});
|
|
|
|
});
|