Remove code from bad merge
This commit is contained in:
parent
b4849eb9ec
commit
17f98cf558
|
@ -1,21 +0,0 @@
|
||||||
export default class VisibilitySelect {
|
|
||||||
constructor(container) {
|
|
||||||
if (!container) throw new Error('VisibilitySelect requires a container element as argument 1');
|
|
||||||
this.container = container;
|
|
||||||
this.helpBlock = this.container.querySelector('.form-text.text-muted');
|
|
||||||
this.select = this.container.querySelector('select');
|
|
||||||
}
|
|
||||||
|
|
||||||
init() {
|
|
||||||
if (this.select) {
|
|
||||||
this.updateHelpText();
|
|
||||||
this.select.addEventListener('change', this.updateHelpText.bind(this));
|
|
||||||
} else {
|
|
||||||
this.helpBlock.textContent = this.container.querySelector('.js-locked').dataset.helpBlock;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
updateHelpText() {
|
|
||||||
this.helpBlock.textContent = this.select.querySelector('option:checked').dataset.description;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,98 +0,0 @@
|
||||||
import VisibilitySelect from '~/visibility_select';
|
|
||||||
|
|
||||||
(() => {
|
|
||||||
describe('VisibilitySelect', function () {
|
|
||||||
const lockedElement = document.createElement('div');
|
|
||||||
lockedElement.dataset.helpBlock = 'lockedHelpBlock';
|
|
||||||
|
|
||||||
const checkedElement = document.createElement('div');
|
|
||||||
checkedElement.dataset.description = 'checkedDescription';
|
|
||||||
|
|
||||||
const mockElements = {
|
|
||||||
container: document.createElement('div'),
|
|
||||||
select: document.createElement('div'),
|
|
||||||
'.form-text.text-muted': document.createElement('div'),
|
|
||||||
'.js-locked': lockedElement,
|
|
||||||
'option:checked': checkedElement,
|
|
||||||
};
|
|
||||||
|
|
||||||
beforeEach(function () {
|
|
||||||
spyOn(Element.prototype, 'querySelector').and.callFake(selector => mockElements[selector]);
|
|
||||||
});
|
|
||||||
|
|
||||||
describe('constructor', function () {
|
|
||||||
beforeEach(function () {
|
|
||||||
this.visibilitySelect = new VisibilitySelect(mockElements.container);
|
|
||||||
});
|
|
||||||
|
|
||||||
it('sets the container member', function () {
|
|
||||||
expect(this.visibilitySelect.container).toEqual(mockElements.container);
|
|
||||||
});
|
|
||||||
|
|
||||||
it('queries and sets the helpBlock member', function () {
|
|
||||||
expect(Element.prototype.querySelector).toHaveBeenCalledWith('.form-text.text-muted');
|
|
||||||
expect(this.visibilitySelect.helpBlock).toEqual(mockElements['.form-text.text-muted']);
|
|
||||||
});
|
|
||||||
|
|
||||||
it('queries and sets the select member', function () {
|
|
||||||
expect(Element.prototype.querySelector).toHaveBeenCalledWith('select');
|
|
||||||
expect(this.visibilitySelect.select).toEqual(mockElements.select);
|
|
||||||
});
|
|
||||||
|
|
||||||
describe('if there is no container element provided', function () {
|
|
||||||
it('throws an error', function () {
|
|
||||||
expect(() => new VisibilitySelect()).toThrowError('VisibilitySelect requires a container element as argument 1');
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
describe('init', function () {
|
|
||||||
describe('if there is a select', function () {
|
|
||||||
beforeEach(function () {
|
|
||||||
this.visibilitySelect = new VisibilitySelect(mockElements.container);
|
|
||||||
});
|
|
||||||
|
|
||||||
it('calls updateHelpText', function () {
|
|
||||||
spyOn(VisibilitySelect.prototype, 'updateHelpText');
|
|
||||||
this.visibilitySelect.init();
|
|
||||||
expect(this.visibilitySelect.updateHelpText).toHaveBeenCalled();
|
|
||||||
});
|
|
||||||
|
|
||||||
it('adds a change event listener', function () {
|
|
||||||
spyOn(this.visibilitySelect.select, 'addEventListener');
|
|
||||||
this.visibilitySelect.init();
|
|
||||||
expect(this.visibilitySelect.select.addEventListener.calls.argsFor(0)).toContain('change');
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
describe('if there is no select', function () {
|
|
||||||
beforeEach(function () {
|
|
||||||
mockElements.select = undefined;
|
|
||||||
this.visibilitySelect = new VisibilitySelect(mockElements.container);
|
|
||||||
this.visibilitySelect.init();
|
|
||||||
});
|
|
||||||
|
|
||||||
it('updates the helpBlock text to the locked `data-help-block` messaged', function () {
|
|
||||||
expect(this.visibilitySelect.helpBlock.textContent)
|
|
||||||
.toEqual(lockedElement.dataset.helpBlock);
|
|
||||||
});
|
|
||||||
|
|
||||||
afterEach(function () {
|
|
||||||
mockElements.select = document.createElement('div');
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
describe('updateHelpText', function () {
|
|
||||||
beforeEach(function () {
|
|
||||||
this.visibilitySelect = new VisibilitySelect(mockElements.container);
|
|
||||||
this.visibilitySelect.init();
|
|
||||||
});
|
|
||||||
|
|
||||||
it('updates the helpBlock text to the selected options `data-description`', function () {
|
|
||||||
expect(this.visibilitySelect.helpBlock.textContent)
|
|
||||||
.toEqual(checkedElement.dataset.description);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
})();
|
|
Loading…
Reference in New Issue