From c136d91dd2c3bf94bfa16114e3d5128b38323340 Mon Sep 17 00:00:00 2001 From: Jonathan Labreuille Date: Mon, 8 Aug 2016 11:36:29 +0200 Subject: [PATCH] encapsulating in communication component + update js tests --- .../blocks/automatedLatestContent.js | 12 +++--- .../js/src/newsletter_editor/blocks/posts.js | 20 ++++----- .../components/communication.js | 22 +++++++--- .../blocks/automatedLatestContent.spec.js | 2 +- .../components/communication.spec.js | 43 +++++++++++++------ 5 files changed, 64 insertions(+), 35 deletions(-) diff --git a/assets/js/src/newsletter_editor/blocks/automatedLatestContent.js b/assets/js/src/newsletter_editor/blocks/automatedLatestContent.js index 87835ac05a..8177d59872 100644 --- a/assets/js/src/newsletter_editor/blocks/automatedLatestContent.js +++ b/assets/js/src/newsletter_editor/blocks/automatedLatestContent.js @@ -51,9 +51,9 @@ define([ blocks: blocks, }).then(_.partial(this.refreshBlocks, models)); }, - refreshBlocks: function(models, response) { + refreshBlocks: function(models, renderedBlocks) { _.each( - _.zip(models, response.data), + _.zip(models, renderedBlocks), function(args) { var model = args[0], contents = args[1]; @@ -220,16 +220,16 @@ define([ var taxonomies; var promise = CommunicationComponent.getTaxonomies( that.model.get('contentType') - ).then(function(response) { - taxonomies = response.data; + ).then(function(tax) { + taxonomies = tax; // Fetch available terms based on the list of taxonomies already fetched var promise = CommunicationComponent.getTerms({ search: options.data.term, taxonomies: _.keys(taxonomies) - }).then(function(response) { + }).then(function(terms) { return { taxonomies: taxonomies, - terms: response.data + terms: terms }; }); return promise; diff --git a/assets/js/src/newsletter_editor/blocks/posts.js b/assets/js/src/newsletter_editor/blocks/posts.js index f14c32d984..113cfa93e4 100644 --- a/assets/js/src/newsletter_editor/blocks/posts.js +++ b/assets/js/src/newsletter_editor/blocks/posts.js @@ -108,8 +108,8 @@ define([ }, fetchAvailablePosts: function() { var that = this; - CommunicationComponent.getPosts(this.toJSON()).done(function(response) { - that.get('_availablePosts').reset(response.data); + CommunicationComponent.getPosts(this.toJSON()).done(function(posts) { + that.get('_availablePosts').reset(posts); that.get('_selectedPosts').reset(); // Empty out the collection that.trigger('change:_availablePosts'); }).fail(function() { @@ -127,8 +127,8 @@ define([ return; } - CommunicationComponent.getTransformedPosts(data).done(function(response) { - that.get('_transformedPosts').get('blocks').reset(response.data, {parse: true}); + CommunicationComponent.getTransformedPosts(data).done(function(posts) { + that.get('_transformedPosts').get('blocks').reset(posts, {parse: true}); }).fail(function() { MailPoet.Notice.error(MailPoet.I18n.t('failedToFetchRenderedPosts')); }); @@ -143,8 +143,8 @@ define([ if (data.posts.length === 0) return; - CommunicationComponent.getTransformedPosts(data).done(function(response) { - collection.add(response.data, { at: index }); + CommunicationComponent.getTransformedPosts(data).done(function(posts) { + collection.add(posts, { at: index }); }).fail(function() { MailPoet.Notice.error(MailPoet.I18n.t('failedToFetchRenderedPosts')); }); @@ -305,16 +305,16 @@ define([ var taxonomies; var promise = CommunicationComponent.getTaxonomies( that.model.get('contentType') - ).then(function(response) { - taxonomies = response.data; + ).then(function(tax) { + taxonomies = tax; // Fetch available terms based on the list of taxonomies already fetched var promise = CommunicationComponent.getTerms({ search: options.data.term, taxonomies: _.keys(taxonomies) - }).then(function(response) { + }).then(function(terms) { return { taxonomies: taxonomies, - terms: response.data + terms: terms }; }); return promise; diff --git a/assets/js/src/newsletter_editor/components/communication.js b/assets/js/src/newsletter_editor/components/communication.js index 439001f525..a3b0ba4c44 100644 --- a/assets/js/src/newsletter_editor/components/communication.js +++ b/assets/js/src/newsletter_editor/components/communication.js @@ -36,36 +36,46 @@ define([ return Module._cachedQuery({ action: 'getTaxonomies', options: { - postType: postType, - }, + postType: postType + } + }).then(function(response) { + return response.data; }); }; Module.getTerms = function(options) { return Module._cachedQuery({ action: 'getTerms', - options: options, + options: options + }).then(function(response) { + return response.data; }); }; Module.getPosts = function(options) { return Module._cachedQuery({ action: 'getPosts', - options: options, + options: options + }).then(function(response) { + return response.data; }); }; Module.getTransformedPosts = function(options) { return Module._cachedQuery({ action: 'getTransformedPosts', - options: options, + options: options + }).then(function(response) { + return response.data; }); }; Module.getBulkTransformedPosts = function(options) { return Module._query({ action: 'getBulkTransformedPosts', - options: options, + options: options + }).then(function(response) { + return response.data; }); }; diff --git a/tests/javascript/newsletter_editor/blocks/automatedLatestContent.spec.js b/tests/javascript/newsletter_editor/blocks/automatedLatestContent.spec.js index 1b65febd1d..30baad156f 100644 --- a/tests/javascript/newsletter_editor/blocks/automatedLatestContent.spec.js +++ b/tests/javascript/newsletter_editor/blocks/automatedLatestContent.spec.js @@ -53,7 +53,7 @@ define([ mock1.expects('trigger').once().withArgs('refreshPosts', postsSet1); mock2.expects('trigger').once().withArgs('refreshPosts', postsSet2); - model.refreshBlocks([block1, block2], { data: [postsSet1, postsSet2] }); + model.refreshBlocks([block1, block2], [postsSet1, postsSet2]); mock1.verify(); mock2.verify(); diff --git a/tests/javascript/newsletter_editor/components/communication.spec.js b/tests/javascript/newsletter_editor/components/communication.spec.js index a2549e7615..97a2a5df12 100644 --- a/tests/javascript/newsletter_editor/components/communication.spec.js +++ b/tests/javascript/newsletter_editor/components/communication.spec.js @@ -73,13 +73,17 @@ define([ expect(spy.args[0][0].data.postType).to.equal('post'); }); - it('fetches post types from the server', function() { + it('fetches taxonomies from the server', function() { var module = CommunicationInjector({ "mailpoet": { Ajax: { post: function() { var deferred = jQuery.Deferred(); - deferred.resolve({ 'category': 'val1' }); + deferred.resolve({ + data: { + 'category': 'val1' + } + }); return deferred; } }, @@ -110,13 +114,13 @@ define([ describe('getTerms', function() { it('sends terms to endpoint', function() { - var spy, - post = function(params) { - var deferred = jQuery.Deferred(); - deferred.resolve({}); - return deferred; - }, - module; + var spy; + var post = function(params) { + var deferred = jQuery.Deferred(); + deferred.resolve({}); + return deferred; + } + var module; spy = sinon.spy(post); module = CommunicationInjector({ "mailpoet": { @@ -138,7 +142,12 @@ define([ Ajax: { post: function() { var deferred = jQuery.Deferred(); - deferred.resolve({ 'term1': 'term1val1', 'term2': 'term2val2' }); + deferred.resolve({ + data: { + 'term1': 'term1val1', + 'term2': 'term2val2' + } + }); return deferred; } }, @@ -201,7 +210,12 @@ define([ Ajax: { post: function() { var deferred = jQuery.Deferred(); - deferred.resolve([{post_title: 'title 1'}, {post_title: 'post title 2'}]); + deferred.resolve({ + data: [ + {post_title: 'title 1'}, + {post_title: 'post title 2'} + ] + }); return deferred; } }, @@ -267,7 +281,12 @@ define([ Ajax: { post: function() { var deferred = jQuery.Deferred(); - deferred.resolve([{type: 'text', text: 'something'}, {type: 'text', text: 'something else'}]); + deferred.resolve({ + data: [ + {type: 'text', text: 'something'}, + {type: 'text', text: 'something else'} + ] + }); return deferred; } },