Browse Source

Fix sectors tests

up-style-manager
Artur Arseniev 5 years ago
parent
commit
ffa4e400b8
  1. 8
      src/style_manager/model/Properties.js
  2. 4
      src/style_manager/model/Property.js
  3. 2
      src/style_manager/model/PropertyFactory.js
  4. 31
      test/specs/style_manager/model/Models.js
  5. 1
      test/specs/style_manager/model/PropertyFactory.js

8
src/style_manager/model/Properties.js

@ -22,9 +22,11 @@ export default Backbone.Collection.extend(TypeableCollection).extend({
init() {
const { opts, em } = this;
const sm = opts.module || em.get('StyleManager');
sm.__listenAdd(this, sm.events.propertyAdd);
sm.__listenRemove(this, sm.events.propertyRemove);
const sm = opts.module || em?.get('StyleManager');
if (sm) {
sm.__listenAdd(this, sm.events.propertyAdd);
sm.__listenRemove(this, sm.events.propertyRemove);
}
},
types: [

4
src/style_manager/model/Property.js

@ -1,6 +1,6 @@
import { Model } from 'common';
import { isUndefined, isString, isArray, result, keys, each, includes } from 'underscore';
import { capitalize, camelCase } from 'utils/mixins';
import { capitalize, camelCase, hasWin } from 'utils/mixins';
/**
* @typedef Property
@ -425,7 +425,7 @@ export default class Property extends Model {
const parent = component && component.parent();
const parentEl = parent && parent.getEl();
if (parentEl) {
const styles = window.getComputedStyle(parentEl);
const styles = hasWin() ? window.getComputedStyle(parentEl) : {};
each(requiresParent, (values, property) => {
stylable = stylable && styles[property] && includes(values, styles[property]);
});

2
src/style_manager/model/PropertyFactory.js

@ -202,7 +202,7 @@ export default class PropertyFactory {
['background-color', { default: 'none' }, 'color'],
// File type
['background-image', { type: this.typeFile, functionName: 'url', default: 'none', full: 1 }],
['background-image', { type: this.typeFile, functionName: 'url', default: 'none', full: true }],
// Slider type
['opacity', { type: this.typeSlider, default: '1', min: 0, max: 1, step: 0.01 }],

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

@ -4,10 +4,13 @@ import PropertyNumber from 'style_manager/model/PropertyNumber';
import Properties from 'style_manager/model/Properties';
import Layer from 'style_manager/model/Layer';
import Layers from 'style_manager/model/Layers';
import Editor from 'editor/model/Editor';
describe('Sector', () => {
var obj;
var confToExt;
let em;
let sm;
let obj;
let confToExt;
beforeEach(() => {
confToExt = {
@ -23,11 +26,19 @@ describe('Sector', () => {
},
],
};
obj = new Sector();
em = new Editor({
styleManager: {
sectors: [{ id: 'sector-1' }],
},
});
sm = em.get('StyleManager');
sm.onLoad();
obj = sm.getSector('sector-1');
});
afterEach(() => {
obj = null;
em.destroy();
});
test('Has id property', () => {
@ -51,22 +62,22 @@ describe('Sector', () => {
expect(res[0]).toEqual({
property: 'display',
type: 'select',
defaults: 'block',
list: [{ value: 'block' }, { value: 'inline' }, { value: 'inline-block' }, { value: 'flex' }, { value: 'none' }],
default: 'block',
options: [{ id: 'block' }, { id: 'inline' }, { id: 'inline-block' }, { id: 'flex' }, { id: 'none' }],
});
});
test('Extend properties', () => {
obj = new Sector(confToExt);
obj = sm.addSector('test', confToExt);
expect(obj.get('properties').length).toEqual(3);
var prop0 = obj.get('properties').at(0);
expect(prop0.get('type')).toEqual('radio');
expect(prop0.get('defaults')).toEqual('block');
expect(prop0.get('default')).toEqual('block');
});
test('Do not extend properties', () => {
confToExt.extendBuilded = 0;
obj = new Sector(confToExt);
obj = sm.addSector('test', confToExt);
expect(obj.get('properties').length).toEqual(3);
var prop0 = obj.get('properties').at(0);
expect(prop0.get('type')).toEqual('radio');
@ -74,7 +85,7 @@ describe('Sector', () => {
});
test('Extend composed properties', () => {
obj = new Sector({
obj = sm.addSector('test', {
buildProps: ['margin', 'float'],
properties: [
{
@ -99,7 +110,7 @@ describe('Sector', () => {
expect(propProps.length).toEqual(2);
var propTop = propProps.at(0);
expect(propTop.get('name')).toEqual('Top');
expect(propTop.get('type')).toEqual('integer');
expect(propTop.get('type')).toEqual('number');
});
});

1
test/specs/style_manager/model/PropertyFactory.js

@ -622,6 +622,7 @@ describe('PropertyFactory', () => {
default: 'none',
type: 'file',
functionName: 'url',
full: true,
},
{
property: 'background-repeat',

Loading…
Cancel
Save