editor: Update config blockDefaults by latest used value per type

This commit is contained in:
Rostislav Wolny
2018-03-12 15:15:30 +01:00
parent 1c5a0bb5bd
commit 1d9b4839f7
6 changed files with 64 additions and 0 deletions

View File

@ -6,6 +6,7 @@ define([
'newsletter_editor/blocks/button'
], function (App, ButtonBlock) {
var EditorApplication = App;
var sandbox;
describe('Button', function () {
describe('model', function () {
@ -17,12 +18,14 @@ define([
blockDefaults: {}
});
model = new (ButtonBlock.ButtonBlockModel)();
sandbox = sinon.sandbox.create();
});
afterEach(function () {
if (EditorApplication.getChannel) {
delete EditorApplication.getChannel;
}
sandbox.restore();
});
it('has a button type', function () {
@ -107,6 +110,14 @@ define([
mock.verify();
});
it('updates blockDefaults.button when changed', function () {
var stub = sandbox.stub(EditorApplication.getConfig(), 'set');
model.trigger('change');
expect(stub.callCount).to.equal(1);
expect(stub.getCall(0).args[0]).to.equal('blockDefaults.button');
expect(stub.getCall(0).args[1]).to.deep.equal(model.toJSON());
});
it('uses defaults from config when they are set', function () {
global.stubConfig(EditorApplication, {
blockDefaults: {

View File

@ -6,6 +6,7 @@ define([
'newsletter_editor/blocks/divider'
], function (App, DividerBlock) {
var EditorApplication = App;
var sandbox;
describe('Divider', function () {
describe('model', function () {
@ -18,10 +19,12 @@ define([
});
global.stubAvailableStyles(EditorApplication);
model = new (DividerBlock.DividerBlockModel)();
sandbox = sinon.sandbox.create();
});
afterEach(function () {
delete EditorApplication.getChannel;
sandbox.restore();
});
it('has a divider type', function () {
@ -94,6 +97,14 @@ define([
expect(innerModel.get('styles.block.borderWidth')).to.equal('7px');
expect(innerModel.get('styles.block.borderColor')).to.equal('#345678');
});
it('updates blockDefaults.divider when changed', function () {
var stub = sandbox.stub(EditorApplication.getConfig(), 'set');
model.trigger('change');
expect(stub.callCount).to.equal(1);
expect(stub.getCall(0).args[0]).to.equal('blockDefaults.divider');
expect(stub.getCall(0).args[1]).to.deep.equal(model.toJSON());
});
});
describe('block view', function () {

View File

@ -10,12 +10,18 @@ define([
describe('Footer', function () {
describe('model', function () {
var model;
var sandbox;
beforeEach(function () {
global.stubChannel(EditorApplication);
global.stubConfig(EditorApplication, {
blockDefaults: {}
});
model = new (FooterBlock.FooterBlockModel)();
sandbox = sinon.sandbox.create();
});
afterEach(function () {
sandbox.restore();
});
it('has a footer type', function () {
@ -113,6 +119,14 @@ define([
expect(innerModel.get('styles.link.fontColor')).to.equal('#345678');
expect(innerModel.get('styles.link.textDecoration')).to.equal('underline');
});
it('updates blockDefaults.footer when changed', function () {
var stub = sandbox.stub(EditorApplication.getConfig(), 'set');
model.trigger('change');
expect(stub.callCount).to.equal(1);
expect(stub.getCall(0).args[0]).to.equal('blockDefaults.footer');
expect(stub.getCall(0).args[1]).to.deep.equal(model.toJSON());
});
});
describe('block view', function () {

View File

@ -10,12 +10,17 @@ define([
describe('Header', function () {
describe('model', function () {
var model;
var sandbox;
beforeEach(function () {
global.stubChannel(EditorApplication);
global.stubConfig(EditorApplication, {
blockDefaults: {}
});
model = new (HeaderBlock.HeaderBlockModel)();
sandbox = sinon.sandbox.create();
});
afterEach(function () {
sandbox.restore();
});
it('has a header type', function () {
@ -113,6 +118,14 @@ define([
expect(innerModel.get('styles.link.fontColor')).to.equal('#345678');
expect(innerModel.get('styles.link.textDecoration')).to.equal('underline');
});
it('updates blockDefaults.header when changed', function () {
var stub = sandbox.stub(EditorApplication.getConfig(), 'set');
model.trigger('change');
expect(stub.callCount).to.equal(1);
expect(stub.getCall(0).args[0]).to.equal('blockDefaults.header');
expect(stub.getCall(0).args[1]).to.deep.equal(model.toJSON());
});
});
describe('block view', function () {

View File

@ -10,6 +10,7 @@ define([
describe('Spacer', function () {
describe('model', function () {
var model;
var sandbox;
beforeEach(function () {
global.stubChannel(EditorApplication);
@ -18,10 +19,12 @@ define([
});
global.stubAvailableStyles(EditorApplication);
model = new (SpacerBlock.SpacerBlockModel)();
sandbox = sinon.sandbox.create();
});
afterEach(function () {
delete EditorApplication.getChannel;
sandbox.restore();
});
it('has spacer type', function () {
@ -72,6 +75,14 @@ define([
expect(model.get('styles.block.backgroundColor')).to.equal('#567890');
expect(model.get('styles.block.height')).to.equal('19px');
});
it('updates blockDefaults.spacer when changed', function () {
var stub = sandbox.stub(EditorApplication.getConfig(), 'set');
model.trigger('change');
expect(stub.callCount).to.equal(1);
expect(stub.getCall(0).args[0]).to.equal('blockDefaults.spacer');
expect(stub.getCall(0).args[1]).to.deep.equal(model.toJSON());
});
});
describe('block view', function () {