Files
threshold-ui/addons/api/tests/unit/services/scope-test.js
T

67 lines
1.9 KiB
JavaScript

import { module, test } from 'qunit';
import { setupTest } from 'ember-qunit';
import { Scope } from '../../../services/scope';
module('Unit | Service | scope class', function (hooks) {
setupTest(hooks);
test('it provides a scope class', function (assert) {
assert.expect(1);
assert.ok(Scope);
});
test('it has initializable org and project members', function (assert) {
assert.expect(2);
const org = { id: 1 };
const project = { id: 2 };
const scope = new Scope(org, project);
assert.equal(scope.org.id, 1);
assert.equal(scope.project.id, 2);
});
test('it has a null project if org is null, even if project was initialized to non-null', function (assert) {
assert.expect(2);
const org = null;
const project = { id: 2 };
const scope = new Scope(org, project);
assert.notOk(scope.org);
assert.notOk(scope.project);
});
test('it serializes to JSON', function (assert) {
assert.expect(2);
let scope = new Scope({ id: 1 });
assert.deepEqual(scope.toJSON(), {
org: { id: 1 },
project: null,
});
scope = new Scope({ id: 1 }, { id: 2 });
assert.deepEqual(scope.toJSON(), {
org: { id: 1 },
project: { id: 2 },
});
});
});
module('Unit | Service | scope', function (hooks) {
setupTest(hooks);
test('it returns nulls when scope is not set', function (assert) {
assert.expect(2);
const service = this.owner.lookup('service:scope');
assert.equal(service.org, null);
assert.equal(service.project, null);
});
test('it aliases org and project to a scope instance', function (assert) {
assert.expect(2);
const service = this.owner.lookup('service:scope');
const org = { id: 1 };
const project = { id: 2 };
service.org = org;
service.project = project;
assert.equal(service.org, service.scope.org);
assert.equal(service.project, service.scope.project);
});
});