1- import request from 'supertest' ;
2- // @ts -ignore
3- // eslint-disable-next-line import/no-relative-packages
41import { setupStrapi , stopStrapi } from '../../../../../playground/tests/helpers' ;
52
63// Higher timeout limit for slower machines
@@ -16,10 +13,14 @@ afterAll(async () => {
1613
1714describe ( 'Query layer decorator' , ( ) => {
1815 it ( 'Create - Should generate a new URL alias' , async ( ) => {
19- const page = await strapi . documents ( " api::test.test" ) . create ( {
16+ let page = await strapi . documents ( ' api::test.test' ) . create ( {
2017 data : {
2118 title : 'Some amazing new page' ,
2219 } ,
20+ } ) ;
21+
22+ page = await strapi . documents ( 'api::test.test' ) . findOne ( {
23+ documentId : page . documentId ,
2324 populate : [ 'url_alias' ] ,
2425 } ) ;
2526
@@ -29,20 +30,24 @@ describe('Query layer decorator', () => {
2930 } ) ;
3031
3132 it ( 'Create - Should re-generate a pre-created URL alias if generated is set to true' , async ( ) => {
32- const alias = await strapi . documents ( " plugin::webtools.url-alias" ) . create ( {
33+ const alias = await strapi . documents ( ' plugin::webtools.url-alias' ) . create ( {
3334 data : {
3435 url_path : '/generated-pre-created-path' ,
3536 generated : true ,
3637 contenttype : 'api::test.test' ,
3738 } ,
3839 } ) ;
3940
40- const page = await strapi . documents ( " api::test.test" ) . create ( {
41+ let page = await strapi . documents ( ' api::test.test' ) . create ( {
4142 data : {
4243 title : 'Generated amazing new page' ,
43- url_alias : alias . documentId ,
44+ url_alias : [ alias . documentId ] ,
4445 } ,
45- populate : [ 'url_alias' ]
46+ } ) ;
47+
48+ page = await strapi . documents ( 'api::test.test' ) . findOne ( {
49+ documentId : page . documentId ,
50+ populate : [ 'url_alias' ] ,
4651 } ) ;
4752
4853 expect ( page ) . toHaveProperty ( 'url_alias[0].documentId' , alias . documentId ) ;
@@ -52,20 +57,24 @@ describe('Query layer decorator', () => {
5257 } ) ;
5358
5459 it ( 'Create - Should not re-generate a pre-created URL alias if generated is set to false' , async ( ) => {
55- const alias = await strapi . documents ( " plugin::webtools.url-alias" ) . create ( {
60+ const alias = await strapi . documents ( ' plugin::webtools.url-alias' ) . create ( {
5661 data : {
5762 url_path : '/pre-created-path' ,
5863 generated : false ,
5964 contenttype : 'api::test.test' ,
6065 } ,
6166 } ) ;
6267
63- const page = await strapi . documents ( " api::test.test" ) . create ( {
68+ let page = await strapi . documents ( ' api::test.test' ) . create ( {
6469 data : {
6570 title : 'Some amazing new page' ,
66- url_alias : alias . documentId ,
71+ url_alias : [ alias . documentId ] ,
6772 } ,
68- populate : [ 'url_alias' ]
73+ } ) ;
74+
75+ page = await strapi . documents ( 'api::test.test' ) . findOne ( {
76+ documentId : page . documentId ,
77+ populate : [ 'url_alias' ] ,
6978 } ) ;
7079
7180 expect ( page ) . toHaveProperty ( 'url_alias[0].documentId' , alias . documentId ) ;
@@ -74,24 +83,30 @@ describe('Query layer decorator', () => {
7483 } ) ;
7584
7685 it ( 'Update - Should generate a new URL alias if none is present' , async ( ) => {
77- const page = await strapi . documents ( " api::test.test" ) . create ( {
86+ let page = await strapi . documents ( ' api::test.test' ) . create ( {
7887 data : {
7988 title : 'Some about to be updated new page' ,
8089 } ,
81- populate : [ 'url_alias' ]
90+ } ) ;
91+
92+ page = await strapi . documents ( 'api::test.test' ) . findOne ( {
93+ documentId : page . documentId ,
94+ populate : [ 'url_alias' ] ,
8295 } ) ;
8396
8497 const oldAliasId = page . url_alias [ 0 ] ?. documentId ;
98+
99+ console . log ( 'aa' , oldAliasId ) ;
100+
85101 // Delete the created url alias to make sure none is present
86102 // at the time of running the .update() query.
87- await strapi . documents ( " plugin::webtools.url-alias" ) . delete ( {
103+ await strapi . documents ( ' plugin::webtools.url-alias' ) . delete ( {
88104 documentId : oldAliasId ,
89105 } ) ;
90106
91- const updatedPage = await strapi . documents ( " api::test.test" ) . update ( {
107+ const updatedPage = await strapi . documents ( ' api::test.test' ) . update ( {
92108 documentId : page . documentId ,
93109 data : {
94- // @ts -ignore
95110 title : 'Some updated page' ,
96111 } ,
97112 populate : [ 'url_alias' ]
@@ -104,23 +119,30 @@ describe('Query layer decorator', () => {
104119 } ) ;
105120
106121 it ( 'Update - Should re-generate an existing URL alias if generated is set to true' , async ( ) => {
107- const page = await strapi . documents ( " api::test.test" ) . create ( {
122+ let page = await strapi . documents ( ' api::test.test' ) . create ( {
108123 data : {
109124 title : 'Some about to be updated new page' ,
110125 } ,
111- populate : [ 'url_alias' ]
126+ } ) ;
127+
128+ page = await strapi . documents ( 'api::test.test' ) . findOne ( {
129+ documentId : page . documentId ,
130+ populate : [ 'url_alias' ] ,
112131 } ) ;
113132
114133 expect ( page ) . toHaveProperty ( 'url_alias[0].url_path' , '/page/some-about-to-be-updated-new-page' )
115134 expect ( page ) . toHaveProperty ( 'url_alias[0].generated' , true ) ;
116135
117- const updatedPage = await strapi . documents ( " api::test.test" ) . update ( {
136+ let updatedPage = await strapi . documents ( ' api::test.test' ) . update ( {
118137 documentId : page . documentId ,
119138 data : {
120- // @ts -ignore
121139 title : 'Some updated page with overwritten url alias' ,
122140 } ,
123- populate : [ 'url_alias' ]
141+ } ) ;
142+
143+ updatedPage = await strapi . documents ( 'api::test.test' ) . findOne ( {
144+ documentId : page . documentId ,
145+ populate : [ 'url_alias' ] ,
124146 } ) ;
125147
126148 expect ( updatedPage ) . toHaveProperty ( 'url_alias[0].documentId' , page . url_alias [ 0 ] ?. documentId ) ;
@@ -129,32 +151,39 @@ describe('Query layer decorator', () => {
129151 } ) ;
130152
131153 it ( 'Update - Should not re-generate an existing URL alias if generated is set to false' , async ( ) => {
132- const alias = await strapi . documents ( " plugin::webtools.url-alias" ) . create ( {
154+ const alias = await strapi . documents ( ' plugin::webtools.url-alias' ) . create ( {
133155 data : {
134156 url_path : '/path-should-not-update' ,
135157 generated : false ,
136158 contenttype : 'api::test.test' ,
137159 } ,
138160 } ) ;
139161
140- const page = await strapi . documents ( " api::test.test" ) . create ( {
162+ let page = await strapi . documents ( ' api::test.test' ) . create ( {
141163 data : {
142164 title : 'Some about to be updated new page' ,
143- url_alias : alias . documentId ,
165+ url_alias : [ alias . documentId ] ,
144166 } ,
145- populate : [ 'url_alias' ]
167+ } ) ;
168+
169+ page = await strapi . documents ( 'api::test.test' ) . findOne ( {
170+ documentId : page . documentId ,
171+ populate : [ 'url_alias' ] ,
146172 } ) ;
147173
148174 expect ( page ) . toHaveProperty ( 'url_alias[0].url_path' , '/path-should-not-update' )
149175 expect ( page ) . toHaveProperty ( 'url_alias[0].generated' , false ) ;
150176
151- const updatedPage = await strapi . documents ( " api::test.test" ) . update ( {
177+ let updatedPage = await strapi . documents ( ' api::test.test' ) . update ( {
152178 documentId : page . documentId ,
153179 data : {
154- // @ts -ignore
155180 title : 'Some updated page' ,
156181 } ,
157- populate : [ 'url_alias' ]
182+ } ) ;
183+
184+ updatedPage = await strapi . documents ( 'api::test.test' ) . findOne ( {
185+ documentId : page . documentId ,
186+ populate : [ 'url_alias' ] ,
158187 } ) ;
159188
160189 expect ( updatedPage ) . toHaveProperty ( 'url_alias[0].documentId' , page . url_alias [ 0 ] ?. documentId ) ;
@@ -163,102 +192,89 @@ describe('Query layer decorator', () => {
163192 } ) ;
164193
165194 it ( 'Update - Should not duplicate check the same entry when updated' , async ( ) => {
166- const page = await strapi . documents ( " api::test.test" ) . create ( {
195+ let page = await strapi . documents ( ' api::test.test' ) . create ( {
167196 data : {
168197 title : 'Unpublished page' ,
169198 } ,
170- populate : [ 'url_alias' ]
199+ } ) ;
200+
201+ page = await strapi . documents ( 'api::test.test' ) . findOne ( {
202+ documentId : page . documentId ,
203+ populate : [ 'url_alias' ] ,
171204 } ) ;
172205
173206 const url = page . url_alias [ 0 ] . url_path ;
174207
175- const updatedPage = await strapi . documents ( " api::test.test" ) . update ( {
208+ let updatedPage = await strapi . documents ( ' api::test.test' ) . update ( {
176209 documentId : page . documentId ,
177210 data : {
178- // @ts -ignore
179211 published_at : new Date ( ) ,
180212 } ,
181- populate : [ 'url_alias' ]
213+ } ) ;
214+
215+ updatedPage = await strapi . documents ( 'api::test.test' ) . findOne ( {
216+ documentId : page . documentId ,
217+ populate : [ 'url_alias' ] ,
182218 } ) ;
183219
184220 expect ( updatedPage ) . toHaveProperty ( 'url_alias[0].url_path' , url ) ;
185221 } ) ;
186222
187223 it ( 'Delete - Should delete the corresponding URL alias as well' , async ( ) => {
188- const page = await strapi . documents ( " api::test.test" ) . create ( {
224+ let page = await strapi . documents ( ' api::test.test' ) . create ( {
189225 data : {
190226 title : 'Some about to be deleted new page' ,
191227 } ,
192- populate : [ 'url_alias' ]
228+ } ) ;
229+
230+ page = await strapi . documents ( 'api::test.test' ) . findOne ( {
231+ documentId : page . documentId ,
232+ populate : [ 'url_alias' ] ,
193233 } ) ;
194234
195235 expect ( page ) . toHaveProperty ( 'url_alias[0].url_path' , '/page/some-about-to-be-deleted-new-page' )
196236 expect ( page ) . toHaveProperty ( 'url_alias[0].generated' , true ) ;
197237
198- await strapi . documents ( " api::test.test" ) . delete ( {
238+ await strapi . documents ( ' api::test.test' ) . delete ( {
199239 documentId : page . documentId ,
200240 } ) ;
201241
202- const alias = await strapi . documents ( " plugin::webtools.url-alias" ) . findOne ( {
242+ const alias = await strapi . documents ( ' plugin::webtools.url-alias' ) . findOne ( {
203243 documentId : page . url_alias [ 0 ] ?. documentId ,
204244 } ) ;
205245
206246 expect ( alias ) . toBeNull ( ) ;
207247 } ) ;
208248
209249 it ( 'Clone - Should create a new entity with a cloned URL alias' , async ( ) => {
210- const page = await strapi . documents ( " api::test.test" ) . create ( {
250+ let page = await strapi . documents ( ' api::test.test' ) . create ( {
211251 data : {
212252 title : 'Some page to clone' ,
213253 } ,
214- populate : [ 'url_alias' ]
215254 } ) ;
216255
217- const clonedPage = await strapi . documents ( " api::test.test" ) . clone ( {
256+ page = await strapi . documents ( ' api::test.test' ) . findOne ( {
218257 documentId : page . documentId ,
219258 populate : [ 'url_alias' ] ,
220- data : { } ,
221259 } ) ;
222260
223- expect ( clonedPage ) . not . toBeNull ( ) ;
224-
225- if ( clonedPage ) {
226- const newUrlAliasPath = `${ page . url_alias . url_path } -0` ;
227- expect ( clonedPage ) . toHaveProperty ( 'url_alias[0].url_path' , newUrlAliasPath ) ;
228- expect ( clonedPage ) . toHaveProperty ( 'url_alias[0].generated' , true ) ;
229- expect ( clonedPage ) . toHaveProperty ( 'url_alias[0].contenttype' , 'api::test.test' ) ;
230- expect ( clonedPage . documentId ) . not . toBe ( page . documentId ) ;
231- expect ( clonedPage . url_alias . documentId ) . not . toBe ( page . url_alias . documentId ) ;
232- }
233- } ) ;
234-
235- it ( 'DeleteMany - Should delete multiple entities and their corresponding URL aliases' , async ( ) => {
236- const page1 = await strapi . documents ( "api::test.test" ) . create ( {
237- data : {
238- title : 'Page 1 to delete' ,
239- } ,
240- populate : [ 'url_alias' ]
241- } ) ;
242-
243- const page2 = await strapi . documents ( "api::test.test" ) . create ( {
244- data : {
245- title : 'Page 2 to delete' ,
246- } ,
247- populate : [ 'url_alias' ]
261+ let clonedPage = await strapi . documents ( 'api::test.test' ) . clone ( {
262+ documentId : page . documentId ,
263+ data : { } ,
248264 } ) ;
249265
250- await strapi . db . query ( "api::test.test" ) . deleteMany ( {
251- where : { id : { $in : [ page1 . documentId , page2 . documentId ] } }
266+ clonedPage = await strapi . documents ( 'api::test.test' ) . findOne ( {
267+ documentId : clonedPage . documentId ,
268+ populate : [ 'url_alias' ] ,
252269 } ) ;
253270
254- const alias1 = await strapi . documents ( "plugin::webtools.url-alias" ) . findOne ( {
255- documentId : page1 . url_alias [ 0 ] ?. documentId ,
256- } ) ;
257- const alias2 = await strapi . documents ( "plugin::webtools.url-alias" ) . findOne ( {
258- documentId : page2 . url_alias [ 0 ] ?. documentId ,
259- } ) ;
271+ expect ( clonedPage ) . not . toBeNull ( ) ;
260272
261- expect ( alias1 ) . toBeNull ( ) ;
262- expect ( alias2 ) . toBeNull ( ) ;
273+ const newUrlAliasPath = `${ page . url_alias [ 0 ] . url_path } -0` ;
274+ expect ( clonedPage ) . toHaveProperty ( 'url_alias[0].url_path' , newUrlAliasPath ) ;
275+ expect ( clonedPage ) . toHaveProperty ( 'url_alias[0].generated' , true ) ;
276+ expect ( clonedPage ) . toHaveProperty ( 'url_alias[0].contenttype' , 'api::test.test' ) ;
277+ expect ( clonedPage . documentId ) . not . toBe ( page . documentId ) ;
278+ expect ( clonedPage . url_alias [ 0 ] . documentId ) . not . toBe ( page . url_alias [ 0 ] . documentId ) ;
263279 } ) ;
264280} ) ;
0 commit comments