import QUnit from 'qunit'; import xhrFactory from '../src/xhr'; import { useFakeEnvironment } from './test-helpers.js'; import videojs from 'video.js'; QUnit.module('xhr', { beforeEach(assert) { this.env = useFakeEnvironment(assert); this.clock = this.env.clock; this.requests = this.env.requests; this.xhr = xhrFactory(); }, afterEach() { this.env.restore(); } }); QUnit.test('xhr respects beforeRequest', function(assert) { let defaultOptions = { url: 'default' }; this.xhr(defaultOptions); assert.equal(this.requests.shift().url, 'default', 'url the same without override'); this.xhr.beforeRequest = (options) => { options.url = 'player'; return options; }; this.xhr(defaultOptions); assert.equal(this.requests.shift().url, 'player', 'url changed with player override'); videojs.Hls.xhr.beforeRequest = (options) => { options.url = 'global'; return options; }; this.xhr(defaultOptions); assert.equal(this.requests.shift().url, 'player', 'prioritizes player override'); delete this.xhr.beforeRequest; this.xhr(defaultOptions); assert.equal(this.requests.shift().url, 'global', 'url changed with global override'); });