63 lines
2.2 KiB
JavaScript
63 lines
2.2 KiB
JavaScript
import { expect } from '@open-wc/testing';
|
|
import { localize } from '@lion/localize';
|
|
import {
|
|
createXSRFRequestTransformer,
|
|
getCookie,
|
|
acceptLanguageRequestTransformer,
|
|
} from '../src/transformers.js';
|
|
|
|
describe('transformers', () => {
|
|
describe('getCookie()', () => {
|
|
it('returns the cookie value', () => {
|
|
expect(getCookie('foo', { cookie: 'foo=bar' })).to.equal('bar');
|
|
});
|
|
|
|
it('returns the cookie value when there are multiple cookies', () => {
|
|
expect(getCookie('foo', { cookie: 'foo=bar; bar=foo;lorem=ipsum' })).to.equal('bar');
|
|
});
|
|
|
|
it('returns null when the cookie cannot be found', () => {
|
|
expect(getCookie('foo', { cookie: 'bar=foo;lorem=ipsum' })).to.equal(null);
|
|
});
|
|
|
|
it('decodes the cookie vaue', () => {
|
|
expect(getCookie('foo', { cookie: `foo=${decodeURIComponent('/foo/ bar "')}` })).to.equal(
|
|
'/foo/ bar "',
|
|
);
|
|
});
|
|
});
|
|
|
|
describe('acceptLanguageRequestTransformer()', () => {
|
|
it('adds the locale as accept-language header', () => {
|
|
const request = new Request('/foo/');
|
|
acceptLanguageRequestTransformer(request);
|
|
expect(request.headers.get('accept-language')).to.equal(localize.locale);
|
|
});
|
|
|
|
it('does not change an existing accept-language header', () => {
|
|
const request = new Request('/foo/', { headers: { 'accept-language': 'my-accept' } });
|
|
acceptLanguageRequestTransformer(request);
|
|
expect(request.headers.get('accept-language')).to.equal('my-accept');
|
|
});
|
|
});
|
|
|
|
describe('createXSRFRequestTransformer()', () => {
|
|
it('adds the xsrf token header to the request', () => {
|
|
const transformer = createXSRFRequestTransformer('XSRF-TOKEN', 'X-XSRF-TOKEN', {
|
|
cookie: 'XSRF-TOKEN=foo',
|
|
});
|
|
const request = new Request('/foo/');
|
|
transformer(request);
|
|
expect(request.headers.get('X-XSRF-TOKEN')).to.equal('foo');
|
|
});
|
|
|
|
it('doesnt set anything if the cookie is not there', () => {
|
|
const transformer = createXSRFRequestTransformer('XSRF-TOKEN', 'X-XSRF-TOKEN', {
|
|
cookie: 'XXSRF-TOKEN=foo',
|
|
});
|
|
const request = new Request('/foo/');
|
|
transformer(request);
|
|
expect(request.headers.get('X-XSRF-TOKEN')).to.equal(null);
|
|
});
|
|
});
|
|
});
|