Files
threshold-ui/ui/desktop/tests/unit/services/rdp-test.js
T
Priya Patel 392e49bf49 refactor: 💡 window postmessage pattern -> contextbridge boundary api (#3167)
* refactor: 💡 postmessage pattern -> contextbridge boundary api

* refactor: 💡 use sinon stub for boundary api mock test helper

* refactor: 💡 updated tests

* refactor: 💡 renamed boundary mock api

* chore: 🤖 addressed feedback

* refactor: 💡 updated context bridge name, added nested objects
2026-03-13 15:14:38 -07:00

92 lines
2.5 KiB
JavaScript

/**
* Copyright IBM Corp. 2021, 2026
* SPDX-License-Identifier: BUSL-1.1
*/
import { module, test } from 'qunit';
import { setupTest } from 'desktop/tests/helpers';
import sinon from 'sinon';
import {
RDP_CLIENT_NONE,
RDP_CLIENT_WINDOWS_APP,
RDP_CLIENT_MSTSC,
RDP_CLIENT_WINDOWS_APP_LINK,
RDP_CLIENT_MSTSC_LINK,
} from 'desktop/services/rdp';
import { setupDesktopContextBridgeApiMock } from '../../helpers/desktop-context-bridge-api-mock';
module('Unit | Service | rdp', function (hooks) {
setupTest(hooks);
setupDesktopContextBridgeApiMock(hooks);
let service;
hooks.beforeEach(function () {
service = this.owner.lookup('service:rdp');
});
hooks.afterEach(function () {
sinon.restore();
});
test('getRdpClients sets to fallback value on error', async function (assert) {
window.desktop.rdp.getRdpClients.rejects();
await service.getRdpClients();
assert.deepEqual(
service.rdpClients,
[RDP_CLIENT_NONE],
'rdpClients fallback is set correctly',
);
});
test('getPreferredRdpClient sets to fallback value on error', async function (assert) {
window.desktop.rdp.getPreferredRdpClient.rejects();
await service.getPreferredRdpClient();
assert.strictEqual(
service.preferredRdpClient,
RDP_CLIENT_NONE,
'preferredRdpClient fallback is set correctly',
);
});
test('setPreferredRdpClient sets to fallback value on error', async function (assert) {
window.desktop.rdp.setPreferredRdpClient.rejects();
await service.setPreferredRdpClient(RDP_CLIENT_MSTSC);
assert.strictEqual(
service.preferredRdpClient,
RDP_CLIENT_NONE,
'preferredRdpClient fallback is set correctly',
);
});
test('sets recommendedRdpClient correctly based on OS', async function (assert) {
window.desktop.system.checkOS.resolves({ isWindows: true });
await service.getRecommendedRdpClient();
assert.deepEqual(
service.recommendedRdpClient,
{
name: RDP_CLIENT_MSTSC,
link: RDP_CLIENT_MSTSC_LINK,
},
'recommendedRdpClient is set correctly for windows',
);
window.desktop.system.checkOS.resolves({ isMac: true });
service.recommendedRdpClient = null;
await service.getRecommendedRdpClient();
assert.deepEqual(
service.recommendedRdpClient,
{
name: RDP_CLIENT_WINDOWS_APP,
link: RDP_CLIENT_WINDOWS_APP_LINK,
},
'recommendedRdpClient is set correctly for mac',
);
});
});