open-nomad/ui/tests/unit/services/token-test.js

64 lines
1.8 KiB
JavaScript

import Service from '@ember/service';
import { module, test } from 'qunit';
import { setupTest } from 'ember-qunit';
import Pretender from 'pretender';
module('Unit | Service | Token', function(hooks) {
setupTest(hooks);
hooks.beforeEach(function() {
this.subject = function() {
return this.owner.factoryFor('service:token').create();
};
});
hooks.beforeEach(function() {
const mockSystem = Service.extend({
activeRegion: 'region-1',
shouldIncludeRegion: true,
});
this.owner.register('service:system', mockSystem);
this.system = this.owner.lookup('service:system');
this.server = new Pretender(function() {
this.get('/path', () => [200, {}, null]);
});
});
hooks.afterEach(function() {
this.server.shutdown();
});
test('authorizedRequest includes the region param when the system service says to', function(assert) {
const token = this.subject();
token.authorizedRequest('/path');
assert.equal(
this.server.handledRequests.pop().url,
`/path?region=${this.system.get('activeRegion')}`,
'The region param is included when the system service shouldIncludeRegion property is true'
);
this.system.set('shouldIncludeRegion', false);
token.authorizedRequest('/path');
assert.equal(
this.server.handledRequests.pop().url,
'/path',
'The region param is not included when the system service shouldIncludeRegion property is false'
);
});
test('authorizedRawRequest bypasses adding the region param', function(assert) {
const token = this.subject();
token.authorizedRawRequest('/path');
assert.equal(
this.server.handledRequests.pop().url,
'/path',
'The region param is ommitted when making a raw request'
);
});
});