UNPKG

3.82 kBJavaScriptView Raw
1/**
2 * Module dependencies
3 */
4var util = require( './util' );
5var assert = require( 'assert' );
6
7/**
8 * Testing data
9 */
10var fixture = require( './fixture' );
11
12/**
13 * wpcom.site.post
14 */
15describe( 'wpcom.site.post', function() {
16 // Global instances
17 var wpcom = util.wpcom();
18 var site = wpcom.site( util.site() );
19 var site_ID;
20 var testing_post;
21
22 // Create a testing_post before to start the tests
23 before( done => {
24 site.addPost( fixture.post )
25 .then( data_post => {
26 testing_post = data_post;
27
28 return site.get();
29 } )
30 .then( data_site => {
31 site_ID = data_site.ID;
32
33 done();
34 } )
35 .catch( done );
36 } );
37
38 after( done => {
39 // delete testing_post post
40 site.deletePost( testing_post.ID )
41 .then( () => done() )
42 .catch( done );
43 } );
44
45 describe( 'wpcom.site.post.get', function() {
46 it( 'should get added post ( by id )', done => {
47 site.post( testing_post.ID ).get()
48 .then( data => {
49 assert.equal( testing_post.ID, data.ID );
50 assert.equal( testing_post.site_ID, data.site_ID );
51 done();
52 } )
53 .catch( done );
54 } );
55
56 it( 'should get passing a query object', done => {
57 site.post( testing_post.ID ).get( { content: 'edit' } )
58 .then( post => {
59 assert.equal( testing_post.ID, post.ID );
60 assert.equal( testing_post.site_ID, post.site_ID );
61 done();
62 } )
63 .catch( done );
64 } );
65
66 it( 'should get added post ( by slug )', done => {
67 site.post( { slug: testing_post.slug } ).get()
68 .then( post => {
69 assert.equal( testing_post.ID, post.ID );
70 assert.equal( testing_post.site_ID, post.site_ID );
71 done();
72 } )
73 .catch( done );
74 } );
75 } );
76
77 describe( 'wpcom.site.post.add', function() {
78 it( 'should add a new post', done => {
79 fixture.post.title += '-added';
80
81 site.post().add( fixture.post )
82 .then( data => {
83 // checking some data date
84 assert.ok( data );
85 assert.ok( data instanceof Object, 'data is not an object' );
86 assert.equal( site_ID, data.site_ID );
87 done();
88 } )
89 .catch( done );
90 } );
91 } );
92
93 describe( 'wpcom.site.post.update', function() {
94 it( 'should edit the new added post', done => {
95 var new_title = fixture.post.title + '-updated';
96
97 site.post( testing_post.ID ).update( { title: new_title } )
98 .then( data => {
99 assert.ok( data );
100 assert.equal( new_title, data.title );
101
102 done();
103 } )
104 .catch( done );
105 } );
106 } );
107
108 describe( 'wpcom.site.post.delete', function() {
109 it( 'should delete the new added post', done => {
110 site.post( testing_post.ID ).delete()
111 .then( data => {
112 assert.ok( data );
113 assert.equal( testing_post.ID, data.ID );
114
115 done();
116 } )
117 .catch( done );
118 } );
119 } );
120
121 describe( 'wpcom.site.post.del', function() {
122 it( 'should delete the post using del()', done => {
123 let test_post;
124 site.addPost( fixture.post )
125 .then( data_post => {
126 test_post = data_post;
127 return data_post;
128 } )
129 .then( ( data_post ) => {
130 return site.post( data_post.ID ).del();
131 } )
132 .then( data => {
133 assert.ok( data );
134 assert.equal( test_post.ID, data.ID );
135
136 done();
137 } )
138 .catch( done );
139 } );
140 } );
141
142 describe( 'wpcom.site.post.restore', function() {
143 it( 'should restore a post from trash', done => {
144 var post = site.post();
145
146 post.add( fixture.post )
147 .then( data => {
148 assert.equal( post._id, data.ID );
149
150 return post.delete();
151 } )
152 .then( data => {
153 assert.equal( post._id, data.ID );
154
155 return post.restore();
156 } )
157 .then( data => {
158 assert.ok( data );
159 assert.equal( post._id, data.ID );
160 assert.equal( testing_post.status, data.status );
161
162 return post.delete();
163 } )
164 .then( data => {
165 assert.equal( post._id, data.ID );
166 done();
167 } )
168 .catch( done );
169 } );
170 } );
171} );