fradrive/frontend/src/services/html-helpers/html-helpers.spec.js
2019-07-03 11:59:02 +02:00

57 lines
1.7 KiB
JavaScript

import { HtmlHelpers } from './html-helpers';
describe('HtmlHelpers', () => {
let htmlHelpers;
beforeEach(() => {
htmlHelpers = new HtmlHelpers();
});
it('should create', () => {
expect(htmlHelpers).toBeTruthy();
});
describe('parseResponse()', () => {
let fakeHttpResponse;
beforeEach(() => {
fakeHttpResponse = {
text: () => Promise.resolve('<div id="test-div">Test</div>'),
};
});
it('should return a promise with idPrefix and element', (done) => {
htmlHelpers.parseResponse(fakeHttpResponse).then(result => {
expect(result.idPrefix).toBeDefined();
expect(result.element).toBeDefined();
expect(result.element.textContent).toMatch('Test');
done();
});
});
it('should nudge IDs', (done) => {
htmlHelpers.parseResponse(fakeHttpResponse).then(result => {
expect(result.idPrefix).toBeDefined();
expect(result.element).toBeDefined();
const elementWithOrigId = result.element.querySelector('#test-div');
expect(elementWithOrigId).toBeFalsy();
const elementWithNudgedId = result.element.querySelector('#' + result.idPrefix + 'test-div');
expect(elementWithNudgedId).toBeTruthy();
done();
});
});
it('should not nudge IDs with option "keepIds"', (done) => {
const options = { keepIds: true };
htmlHelpers.parseResponse(fakeHttpResponse, options).then(result => {
expect(result.idPrefix).toBe('');
expect(result.element).toBeDefined();
const elementWithOrigId = result.element.querySelector('#test-div');
expect(elementWithOrigId).toBeTruthy();
done();
});
});
});
});