Files
threshold-ui/ui/admin/tests/unit/services/window-manager-test.js
T
2024-05-31 11:29:24 -07:00

60 lines
1.7 KiB
JavaScript

/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: BUSL-1.1
*/
import { module, test } from 'qunit';
import { setupTest } from 'ember-qunit';
import { setupBrowserFakes } from 'ember-browser-services/test-support';
import Service from '@ember/service';
module('Unit | Service | window-manager', function (hooks) {
setupTest(hooks);
setupBrowserFakes(hooks, { window: true });
test('it opens window instances', function (assert) {
assert.expect(1);
const fakeURL = 'bloop://not-a-real-url';
// Register mock window service
this.owner.register(
'service:browser/window',
class extends Service {
open(url) {
assert.strictEqual(url, fakeURL);
}
},
);
const service = this.owner.lookup('service:window-manager');
service.open(fakeURL);
});
test('it closes all open window instances and _does not_ close already-closed instances', function (assert) {
const instanceCount = 3;
const assertionsPerInstance = 1;
assert.expect(instanceCount * assertionsPerInstance);
// Register mock window service
this.owner.register(
'service:browser/window',
class extends Service {
open() {
return {
close() {
assert.ok(true, 'Window closed.');
},
};
}
},
);
const service = this.owner.lookup('service:window-manager');
for (let i = 0; i < instanceCount; i++) {
service.open();
}
// First, close all open instances.
service.closeAll();
// Try closeAll again, which should result in no additional assertions.
// See assert.expect above, which accounts for a single close call
// per instance.
service.closeAll();
});
});