Browse Source

Fix radio property regressions

no-jquery
Artur Arseniev 9 years ago
parent
commit
4ef148d4da
  1. 2
      src/style_manager/view/PropertyRadioView.js
  2. 2
      test/specs/style_manager/index.js
  3. 49
      test/specs/style_manager/model/Models.js
  4. 13
      test/specs/style_manager/view/PropertyRadioView.js
  5. 4
      test/specs/style_manager/view/PropertyView.js

2
src/style_manager/view/PropertyRadioView.js

@ -59,7 +59,7 @@ module.exports = require('./PropertyView').extend({
const inputIn = input ? input.querySelector(`[value="${val}"]`) : '';
if (inputIn) {
inputIn.checked = true
inputIn.checked = true;
} else {
const inputChk = this.getCheckedEl();
inputChk && (inputChk.checked = false);

2
test/specs/style_manager/index.js

@ -11,7 +11,7 @@ const PropertyCompositeView = require('./view/PropertyCompositeView');
const PropertyStackView = require('./view/PropertyStackView');
const LayerView = require('./view/LayerView');
describe('StyleManager', () => {
describe.only('StyleManager', () => {
describe('Main', () => {
var obj;

49
test/specs/style_manager/model/Models.js

@ -163,6 +163,11 @@ module.exports = {
describe('Layer', () => {
var obj;
var properties = [
{value: 'val1', property: 'prop1'},
{value: 'val2', property: 'prop2'},
{value: 'val3', property: 'prop3', functionName: 'test'}
];
beforeEach(() => {
obj = new Layer();
@ -176,8 +181,26 @@ module.exports = {
expect(obj.has('index')).toEqual(true);
});
it('Is active', () => {
expect(obj.get('active')).toEqual(true);
it('Is not active', () => {
expect(obj.get('active')).toEqual(false);
});
it('Has no properties', () => {
expect(obj.get('properties').length).toEqual(0);
});
it('Get correct values from properties', () => {
obj = new Layer({
properties
})
expect(obj.getFullValue()).toEqual('val1 val2 test(val3)');
});
it('Get correct value from properties', () => {
obj = new Layer({properties})
expect(obj.getPropertyValue()).toEqual('');
expect(obj.getPropertyValue('no-prop')).toEqual('');
expect(obj.getPropertyValue('prop3')).toEqual('test(val3)');
});
});
@ -185,6 +208,11 @@ module.exports = {
describe('Layers', () => {
var obj;
var properties = [
{value: 'val1', property: 'prop1'},
{value: 'val2', property: 'prop2'},
{value: 'val3', property: 'prop3', functionName: 'test'}
];
beforeEach(() => {
obj = new Layers();
@ -224,6 +252,23 @@ module.exports = {
expect(obj.idx).toEqual(1);
});
it('getFullValue from layers', () => {
obj = new Layers([
{properties},
{properties},
{properties}
]);
expect(obj.getFullValue()).toEqual('val1 val2 test(val3), val1 val2 test(val3), val1 val2 test(val3)');
});
it('getPropertyValues from layers', () => {
obj = new Layers([
{properties},
{properties},
{properties}
]);
expect(obj.getPropertyValues('prop3')).toEqual('test(val3), test(val3), test(val3)');
});
});
describe('PropertyFactory', () => {

13
test/specs/style_manager/view/PropertyRadioView.js

@ -21,6 +21,11 @@ module.exports = {
{ name: 'test2', value: 'test2value'}
];
// Have some issue with getCheckedEl() and jsdom
// this view.getInputEl().querySelector('input:checked') return null
// but view.getInputEl().querySelectorAll('input:checked')[0] works
var getCheckedEl = (view) => view.getInputEl().querySelectorAll('input:checked')[0];
beforeEach(() => {
target = new Component();
component = new Component();
@ -86,12 +91,12 @@ module.exports = {
it('Update model on input change', () => {
view.setValue(propValue);
expect(view.getInputValue()).toEqual(propValue);
expect(getCheckedEl(view).value).toEqual(propValue);
});
it('Update input on value change', () => {
view.model.set('value', propValue);
expect(view.getInputValue()).toEqual(propValue);
expect(getCheckedEl(view).value).toEqual(propValue);
});
it('Update target on value change', () => {
@ -122,7 +127,7 @@ module.exports = {
component.set('style', style);
view.propTarget.trigger('update');
expect(view.model.get('value')).toEqual(propValue);
expect(view.getInputValue()).toEqual(propValue);
expect(getCheckedEl(view).value).toEqual(propValue);
});
it('Update value after multiple swaps', () => {
@ -134,7 +139,7 @@ module.exports = {
component.set('style', style);
view.propTarget.trigger('update');
expect(view.model.get('value')).toEqual('test2value');
expect(view.getInputValue()).toEqual('test2value');
expect(getCheckedEl(view).value).toEqual('test2value');
});
})

4
test/specs/style_manager/view/PropertyView.js

@ -215,8 +215,8 @@ module.exports = {
expect(input.getAttribute('placeholder')).toEqual(defValue);
});
it('Input value is empty', () => {
expect(view.getInputValue()).toEqual('');
it('Input value is set up to default', () => {
expect(view.getInputValue()).toEqual(defValue);
});
});

Loading…
Cancel
Save