Fix editor's newsletter saving tests

This commit is contained in:
Tautvidas Sipavičius
2015-09-24 17:07:23 +03:00
parent 246089b4b6
commit 8846bc9e43
27 changed files with 71 additions and 78 deletions

View File

@ -5,8 +5,9 @@ define([
'jquery',
'underscore',
'handlebars',
'handlebars_helpers',
], function(Backbone, Marionette, SuperModel, jQuery, _, Handlebars) {
'handlebars_helpers'
], function(Backbone, Marionette, SuperModel, jQuery, _, Handlebars) {
var app = new Marionette.Application(), AppView;
// Decoupled communication between application components

View File

@ -5,7 +5,7 @@
* For more check: http://marionettejs.com/docs/marionette.behaviors.html#behaviorslookup
*/
define([
'backbone.marionette',
'backbone.marionette'
], function(Marionette) {
var BehaviorsLookup = {};

View File

@ -6,7 +6,7 @@
define([
'backbone.marionette',
'newsletter_editor/behaviors/BehaviorsLookup',
'spectrum',
'spectrum'
], function(Marionette, BehaviorsLookup, Spectrum) {
BehaviorsLookup.ColorPickerBehavior = Marionette.Behavior.extend({

View File

@ -10,7 +10,7 @@ define([
'underscore',
'jquery',
'newsletter_editor/behaviors/BehaviorsLookup',
'interact',
'interact'
], function(Marionette, _, jQuery, BehaviorsLookup, interact) {
BehaviorsLookup.ContainerDropZoneBehavior = Marionette.Behavior.extend({

View File

@ -9,7 +9,7 @@ define([
'underscore',
'jquery',
'newsletter_editor/behaviors/BehaviorsLookup',
'interact',
'interact'
], function(Marionette, _, jQuery, BehaviorsLookup, interact) {
BehaviorsLookup.DraggableBehavior = Marionette.Behavior.extend({

View File

@ -6,7 +6,7 @@
define([
'backbone.marionette',
'newsletter_editor/behaviors/BehaviorsLookup',
'interact',
'interact'
], function(Marionette, BehaviorsLookup, interact) {
BehaviorsLookup.ResizableBehavior = Marionette.Behavior.extend({

View File

@ -6,7 +6,7 @@
define([
'backbone.marionette',
'underscore',
'newsletter_editor/behaviors/BehaviorsLookup',
'newsletter_editor/behaviors/BehaviorsLookup'
], function(Marionette, _, BehaviorsLookup) {
BehaviorsLookup.SortableBehavior = Marionette.Behavior.extend({

View File

@ -13,7 +13,7 @@ define([
'newsletter_editor/blocks/divider',
'newsletter_editor/components/wordpress',
'underscore',
'jquery',
'jquery'
], function(App, BaseBlock, ButtonBlock, DividerBlock, WordpressComponent, _, jQuery) {
"use strict";

View File

@ -11,7 +11,7 @@ define([
'underscore',
'jquery',
'mailpoet',
'modal',
'modal'
], function(App, Marionette, SuperModel, _, jQuery, MailPoet, Modal) {
"use strict";

View File

@ -6,7 +6,7 @@ define([
'newsletter_editor/blocks/base',
'mailpoet',
'underscore',
'jquery',
'jquery'
], function(App, BaseBlock, MailPoet, _, jQuery) {
"use strict";

View File

@ -9,7 +9,7 @@ define([
'underscore',
'jquery',
'newsletter_editor/App',
'newsletter_editor/blocks/base',
'newsletter_editor/blocks/base'
], function(Backbone, Marionette, _, jQuery, App, BaseBlock) {
"use strict";

View File

@ -6,7 +6,7 @@ define([
'newsletter_editor/blocks/base',
'underscore',
'jquery',
'mailpoet',
'mailpoet'
], function(App, BaseBlock, _, jQuery, MailPoet) {
"use strict";

View File

@ -4,7 +4,7 @@
define([
'newsletter_editor/App',
'newsletter_editor/blocks/base',
'underscore',
'underscore'
], function(App, BaseBlock, _) {
"use strict";

View File

@ -4,7 +4,7 @@
define([
'newsletter_editor/App',
'newsletter_editor/blocks/base',
'underscore',
'underscore'
], function(App, BaseBlock, _) {
"use strict";

View File

@ -4,7 +4,7 @@
define([
'newsletter_editor/App',
'newsletter_editor/blocks/base',
'underscore',
'underscore'
], function(App, BaseBlock, _) {
"use strict";

View File

@ -21,7 +21,7 @@ define([
'newsletter_editor/components/wordpress',
'newsletter_editor/blocks/base',
'newsletter_editor/blocks/button',
'newsletter_editor/blocks/divider',
'newsletter_editor/blocks/divider'
], function(Backbone, Marionette, Radio, _, jQuery, MailPoet, App, WordpressComponent, BaseBlock, ButtonBlock, DividerBlock) {
"use strict";

View File

@ -8,7 +8,7 @@ define([
'backbone.marionette',
'backbone.supermodel',
'underscore',
'jquery',
'jquery'
], function(App, BaseBlock, Backbone, Marionette, SuperModel, _, jQuery) {
"use strict";

View File

@ -4,7 +4,7 @@
define([
'newsletter_editor/App',
'newsletter_editor/blocks/base',
'underscore',
'underscore'
], function(App, BaseBlock, _) {
"use strict";

View File

@ -4,7 +4,7 @@
define([
'newsletter_editor/App',
'newsletter_editor/blocks/base',
'underscore',
'underscore'
], function(App, BaseBlock, _) {
"use strict";

View File

@ -1,6 +1,6 @@
define([
'newsletter_editor/App',
'backbone.supermodel',
'backbone.supermodel'
], function(App, SuperModel) {
var Module = {};

View File

@ -1,7 +1,7 @@
define([
'newsletter_editor/App',
'backbone.supermodel',
'underscore',
'underscore'
], function(App, SuperModel, _) {
"use strict";

View File

@ -3,7 +3,7 @@ define([
'backbone',
'backbone.marionette',
'underscore',
'jquery',
'jquery'
], function(App, Backbone, Marionette, _, jQuery) {
"use strict";

View File

@ -2,7 +2,7 @@ define([
'newsletter_editor/App',
'newsletter_editor/components/wordpress',
'backbone',
'backbone.marionette',
'backbone.marionette'
], function(App, Wordpress, Backbone, Marionette) {
"use strict";

View File

@ -5,7 +5,7 @@ define([
'backbone.supermodel',
'underscore',
'jquery',
'sticky-kit',
'sticky-kit'
], function(App, Backbone, Marionette, SuperModel, _, jQuery, StickyKit) {
"use strict";

View File

@ -1,7 +1,7 @@
define([
'newsletter_editor/App',
'backbone.marionette',
'backbone.supermodel',
'backbone.supermodel'
], function(App, Marionette, SuperModel) {
"use strict";

View File

@ -1,40 +1,56 @@
define([
'newsletter_editor/App',
'newsletter_editor/components/save'
], function(EditorApplication, SaveComponent) {
'newsletter_editor/components/save',
'amd-inject-loader!newsletter_editor/components/save'
], function(EditorApplication, SaveComponent, SaveInjector) {
describe('Save', function() {
describe('save method', function() {
var module;
before(function() {
module = SaveInjector({
'newsletter_editor/components/wordpress': {
saveNewsletter: function() {
var deferred = jQuery.Deferred();
deferred.resolve({});
return deferred;
}
}
});
});
it('triggers beforeEditorSave event', function() {
var spy = sinon.spy();
global.stubChannel(EditorApplication, {
trigger: spy,
});
global.mailpoet_post_wpi = sinon.stub();
EditorApplication.toJSON = sinon.stub();
SaveComponent.save();
module.save();
expect(spy.withArgs('beforeEditorSave').calledOnce).to.be.true;
});
it.skip('triggers afterEditorSave event', function() {
it('triggers afterEditorSave event', function() {
var stub = sinon.stub().callsArgWith(2, { success: true }),
spy = sinon.spy();
global.mailpoet_post_wpi = stub;
global.stubChannel(EditorApplication, {
trigger: spy,
});
EditorApplication.toJSON = sinon.stub();
SaveComponent.save();
module.save();
expect(spy.withArgs('afterEditorSave').calledOnce).to.be.true;
});
it.skip('sends newsletter json to server for saving', function() {
var mock = sinon.mock({ mailpoet_post_wpi: function() {} }).expects('mailpoet_post_wpi').once();
it('sends newsletter json to server for saving', function() {
var mock = sinon.mock({ saveNewsletter: function() {} }).expects('saveNewsletter').once().returns(jQuery.Deferred());
var module = SaveInjector({
'newsletter_editor/components/wordpress': {
saveNewsletter: mock,
}
});
global.stubChannel(EditorApplication);
global.mailpoet_post_wpi = mock;
EditorApplication.toJSON = sinon.stub().returns({});
SaveComponent.save();
module.save();
mock.verify();
});

View File

@ -1,16 +1,12 @@
define([
'newsletter_editor/App',
'newsletter_editor/components/wordpress'
], function(EditorApplication, Wordpress) {
'newsletter_editor/components/wordpress',
'amd-inject-loader!newsletter_editor/components/wordpress'
], function(EditorApplication, Wordpress, WordpressInjector) {
describe('getPostTypes', function() {
var injector;
beforeEach(function() {
injector = require('amd-inject-loader!newsletter_editor/components/wordpress');
});
it('fetches post types from the server', function() {
var module = injector({
var module = WordpressInjector({
"mailpoet": {
Ajax: {
post: function() {
@ -32,7 +28,7 @@ define([
it('caches results', function() {
var deferred = jQuery.Deferred(),
mock = sinon.mock({ post: function() {} }).expects('post').once().returns(deferred),
module = injector({
module = WordpressInjector({
"mailpoet": {
Ajax: {
post: mock,
@ -51,11 +47,6 @@ define([
});
describe('getTaxonomies', function() {
var injector;
beforeEach(function() {
injector = require('amd-inject-loader!newsletter_editor/components/wordpress');
});
it('sends post type to endpoint', function() {
var spy,
post = function(params) {
@ -68,7 +59,7 @@ define([
},
module;
spy = sinon.spy(post);
module = injector({
module = WordpressInjector({
"mailpoet": {
Ajax: {
post: spy,
@ -81,7 +72,7 @@ define([
});
it('fetches post types from the server', function() {
var module = injector({
var module = WordpressInjector({
"mailpoet": {
Ajax: {
post: function() {
@ -100,7 +91,7 @@ define([
it('caches results', function() {
var deferred = jQuery.Deferred(),
mock = sinon.mock({ post: function() {} }).expects('post').once().returns(deferred),
module = injector({
module = WordpressInjector({
"mailpoet": {
Ajax: {
post: mock,
@ -116,11 +107,6 @@ define([
});
describe('getTerms', function() {
var injector;
beforeEach(function() {
injector = require('amd-inject-loader!newsletter_editor/components/wordpress');
});
it('sends terms to endpoint', function() {
var spy,
post = function(params) {
@ -130,7 +116,7 @@ define([
},
module;
spy = sinon.spy(post);
module = injector({
module = WordpressInjector({
"mailpoet": {
Ajax: {
post: spy,
@ -145,7 +131,7 @@ define([
});
it('fetches terms from the server', function() {
var module = injector({
var module = WordpressInjector({
"mailpoet": {
Ajax: {
post: function() {
@ -164,7 +150,7 @@ define([
it('caches results', function() {
var deferred = jQuery.Deferred(),
mock = sinon.mock({ post: function() {} }).expects('post').once().returns(deferred),
module = injector({
module = WordpressInjector({
"mailpoet": {
Ajax: {
post: mock,
@ -180,11 +166,6 @@ define([
});
describe('getPosts', function() {
var injector;
beforeEach(function() {
injector = require('amd-inject-loader!newsletter_editor/components/wordpress');
});
it('sends options to endpoint', function() {
var spy,
post = function(params) {
@ -194,7 +175,7 @@ define([
},
module;
spy = sinon.spy(post);
module = injector({
module = WordpressInjector({
"mailpoet": {
Ajax: {
post: spy,
@ -213,7 +194,7 @@ define([
});
it('fetches posts from the server', function() {
var module = injector({
var module = WordpressInjector({
"mailpoet": {
Ajax: {
post: function() {
@ -232,7 +213,7 @@ define([
it('caches results', function() {
var deferred = jQuery.Deferred(),
mock = sinon.mock({ post: function() {} }).expects('post').once().returns(deferred),
module = injector({
module = WordpressInjector({
"mailpoet": {
Ajax: {
post: mock,
@ -251,11 +232,6 @@ define([
});
describe('getTransformedPosts', function() {
var injector;
beforeEach(function() {
injector = require('amd-inject-loader!newsletter_editor/components/wordpress');
});
it('sends options to endpoint', function() {
var spy,
post = function(params) {
@ -265,7 +241,7 @@ define([
},
module;
spy = sinon.spy(post);
module = injector({
module = WordpressInjector({
"mailpoet": {
Ajax: {
post: spy,
@ -284,7 +260,7 @@ define([
});
it('fetches transformed posts from the server', function() {
var module = injector({
var module = WordpressInjector({
"mailpoet": {
Ajax: {
post: function() {
@ -303,7 +279,7 @@ define([
it('caches results', function() {
var deferred = jQuery.Deferred(),
mock = sinon.mock({ post: function() {} }).expects('post').once().returns(deferred),
module = injector({
module = WordpressInjector({
"mailpoet": {
Ajax: {
post: mock,