1414 * limitations under the License.
1515 */
1616
17- import { Editor , exportDocumentMatcher , exportDocumentsMatcher , LocalRegistry } from './helpers'
17+ import { Editor , exportDocumentMatcher , exportDocumentsMatcher , loadFileAsString , LocalRegistry } from './helpers'
1818import {
1919 BUILD_TYPE ,
2020 ExportRestOperationsGroupBuildConfig ,
2121 FILE_FORMAT_HTML ,
2222 FILE_FORMAT_JSON ,
23+ FILE_FORMAT_YAML ,
2324 TRANSFORMATION_KIND_MERGED ,
2425 TRANSFORMATION_KIND_REDUCED ,
25- FILE_FORMAT_YAML ,
2626} from '../src'
27+ import YAML from 'js-yaml'
2728// import fs from 'fs/promises'
2829// import AdmZip = require('adm-zip')
2930
@@ -33,6 +34,8 @@ let pkg: LocalRegistry
3334let editor : Editor
3435const GROUP_WITH_OPERATIONS_FROM_TWO_DOCUMENTS = 'GROUP_WITH_OPERATIONS_FROM_TWO_DOCUMENTS'
3536const GROUP_WITH_OPERATIONS_FROM_ONE_DOCUMENT_ONLY = 'GROUP_WITH_OPERATIONS_FROM_ONE_DOCUMENT_ONLY'
37+ const GROUP_WITH_OPERATIONS_FROM_DOCUMENTS_WITH_THE_SAME_NAMES = 'GROUP_WITH_OPERATIONS_FROM_DOCUMENTS_WITH_THE_SAME_NAMES'
38+
3639const groupToOperationIdsMap = {
3740 [ GROUP_WITH_OPERATIONS_FROM_TWO_DOCUMENTS ] : [
3841 'path1-get' ,
@@ -42,11 +45,19 @@ const groupToOperationIdsMap = {
4245 'path2-get' ,
4346 'path2-post' ,
4447 ] ,
48+ [ GROUP_WITH_OPERATIONS_FROM_DOCUMENTS_WITH_THE_SAME_NAMES ] : [
49+ 'some-path1-get' ,
50+ 'another-path1-put' ,
51+ 'some-path2-post' ,
52+ ] ,
4553}
4654
4755const REGULAR_VERSION = 'regular-version@123'
4856const SINGLE_DOCUMENT_VERSION = 'single-document-version@24'
4957const SINGLE_DOCUMENT_VERSION_WITH_README = 'single-document-version-with-readme@31'
58+ const NO_DOCUMENTS_VERSION = 'no-documents-version@51'
59+
60+ const EXPECTED_RESULT_FILE = 'result.yaml'
5061
5162const COMMON_GROUP_EXPORT_CONFIG = {
5263 packageId : 'export' ,
@@ -56,27 +67,29 @@ const COMMON_GROUP_EXPORT_CONFIG = {
5667
5768const COMMON_REDUCED_GROUP_EXPORT_CONFIG : Partial < ExportRestOperationsGroupBuildConfig > = {
5869 ...COMMON_GROUP_EXPORT_CONFIG ,
59- groupName : GROUP_WITH_OPERATIONS_FROM_TWO_DOCUMENTS ,
6070 buildType : BUILD_TYPE . EXPORT_REST_OPERATIONS_GROUP ,
6171 operationsSpecTransformation : TRANSFORMATION_KIND_REDUCED ,
6272}
6373
6474const COMMON_MERGED_GROUP_EXPORT_CONFIG : Partial < ExportRestOperationsGroupBuildConfig > = {
6575 ...COMMON_GROUP_EXPORT_CONFIG ,
66- groupName : GROUP_WITH_OPERATIONS_FROM_TWO_DOCUMENTS ,
6776 buildType : BUILD_TYPE . EXPORT_REST_OPERATIONS_GROUP ,
6877 operationsSpecTransformation : TRANSFORMATION_KIND_MERGED ,
6978}
7079
7180describe ( 'Export test' , ( ) => {
7281 beforeAll ( async ( ) => {
73- pkg = LocalRegistry . openPackage ( 'export' )
82+ pkg = LocalRegistry . openPackage ( 'export' , groupToOperationIdsMap )
7483 await pkg . publish ( pkg . packageId , { version : REGULAR_VERSION } )
7584 await pkg . publish ( pkg . packageId , { version : SINGLE_DOCUMENT_VERSION , files : [ { fileId : '1.yaml' } ] } )
7685 await pkg . publish ( pkg . packageId , {
7786 version : SINGLE_DOCUMENT_VERSION_WITH_README ,
7887 files : [ { fileId : '1.yaml' } , { fileId : 'README.md' } ] ,
7988 } )
89+ await pkg . publish ( pkg . packageId , {
90+ version : NO_DOCUMENTS_VERSION ,
91+ files : [ { fileId : 'Document.docx' } , { fileId : 'README.md' } , { fileId : 'Test.png' } ] ,
92+ } )
8093
8194 editor = await Editor . openProject ( pkg . packageId , pkg )
8295
@@ -250,12 +263,21 @@ describe('Export test', () => {
250263 ] ) )
251264 } )
252265
253- // todo same 3 tests but without extensions? (excessive)
266+ test ( 'should export version without documents to html without adding any extra files' , async ( ) => {
267+ const result = await editor . run ( {
268+ version : NO_DOCUMENTS_VERSION ,
269+ buildType : BUILD_TYPE . EXPORT_VERSION ,
270+ format : FILE_FORMAT_HTML ,
271+ } )
272+ expect ( result . exportFileName ) . toEqual ( 'export_no-documents-version.zip' )
273+ expect ( result ) . toEqual ( exportDocumentsMatcher ( [
274+ exportDocumentMatcher ( 'Document.docx' ) ,
275+ exportDocumentMatcher ( 'README.md' ) ,
276+ exportDocumentMatcher ( 'Test.png' ) ,
277+ ] ) )
278+ } )
254279
255280 test ( 'should export reduced rest operations group to html' , async ( ) => {
256- pkg = LocalRegistry . openPackage ( 'export' , groupToOperationIdsMap )
257- editor = await Editor . openProject ( pkg . packageId , pkg )
258-
259281 const result = await editor . run ( {
260282 ...COMMON_REDUCED_GROUP_EXPORT_CONFIG ,
261283 format : FILE_FORMAT_HTML ,
@@ -273,9 +295,6 @@ describe('Export test', () => {
273295 } )
274296
275297 test ( 'should export reduced rest operations group to html (operations originated from one document)' , async ( ) => {
276- pkg = LocalRegistry . openPackage ( 'export' , groupToOperationIdsMap )
277- editor = await Editor . openProject ( pkg . packageId , pkg )
278-
279298 const result = await editor . run ( {
280299 ...COMMON_REDUCED_GROUP_EXPORT_CONFIG ,
281300 groupName : GROUP_WITH_OPERATIONS_FROM_ONE_DOCUMENT_ONLY ,
@@ -292,9 +311,6 @@ describe('Export test', () => {
292311 } )
293312
294313 test ( 'should export reduced rest operations group to json' , async ( ) => {
295- pkg = LocalRegistry . openPackage ( 'export' , groupToOperationIdsMap )
296- editor = await Editor . openProject ( pkg . packageId , pkg )
297-
298314 const result = await editor . run ( {
299315 ...COMMON_REDUCED_GROUP_EXPORT_CONFIG ,
300316 format : FILE_FORMAT_JSON ,
@@ -307,9 +323,6 @@ describe('Export test', () => {
307323 } )
308324
309325 test ( 'should export reduced rest operations group to json (operations originated from one document)' , async ( ) => {
310- pkg = LocalRegistry . openPackage ( 'export' , groupToOperationIdsMap )
311- editor = await Editor . openProject ( pkg . packageId , pkg )
312-
313326 const result = await editor . run ( {
314327 ...COMMON_REDUCED_GROUP_EXPORT_CONFIG ,
315328 groupName : GROUP_WITH_OPERATIONS_FROM_ONE_DOCUMENT_ONLY ,
@@ -322,9 +335,6 @@ describe('Export test', () => {
322335 } )
323336
324337 test ( 'should export reduced rest operations group to yaml' , async ( ) => {
325- pkg = LocalRegistry . openPackage ( 'export' , groupToOperationIdsMap )
326- editor = await Editor . openProject ( pkg . packageId , pkg )
327-
328338 const result = await editor . run ( {
329339 ...COMMON_REDUCED_GROUP_EXPORT_CONFIG ,
330340 format : FILE_FORMAT_YAML ,
@@ -337,9 +347,6 @@ describe('Export test', () => {
337347 } )
338348
339349 test ( 'should export reduced rest operations group to yaml (operations originated from one document)' , async ( ) => {
340- pkg = LocalRegistry . openPackage ( 'export' , groupToOperationIdsMap )
341- editor = await Editor . openProject ( pkg . packageId , pkg )
342-
343350 const result = await editor . run ( {
344351 ...COMMON_REDUCED_GROUP_EXPORT_CONFIG ,
345352 groupName : GROUP_WITH_OPERATIONS_FROM_ONE_DOCUMENT_ONLY ,
@@ -352,8 +359,6 @@ describe('Export test', () => {
352359 } )
353360
354361 test ( 'should export merged rest operations group to html' , async ( ) => {
355- pkg = LocalRegistry . openPackage ( 'export' , groupToOperationIdsMap )
356- editor = await Editor . openProject ( pkg . packageId , pkg )
357362 const result = await editor . run ( {
358363 ...COMMON_MERGED_GROUP_EXPORT_CONFIG ,
359364 format : FILE_FORMAT_HTML ,
@@ -369,8 +374,6 @@ describe('Export test', () => {
369374 } )
370375
371376 test ( 'should export merged rest operations group to json' , async ( ) => {
372- pkg = LocalRegistry . openPackage ( 'export' , groupToOperationIdsMap )
373- editor = await Editor . openProject ( pkg . packageId , pkg )
374377 const result = await editor . run ( {
375378 ...COMMON_MERGED_GROUP_EXPORT_CONFIG ,
376379 format : FILE_FORMAT_JSON ,
@@ -379,12 +382,11 @@ describe('Export test', () => {
379382 expect ( result ) . toEqual ( exportDocumentsMatcher ( [
380383 exportDocumentMatcher ( 'GROUP_WITH_OPERATIONS_FROM_TWO_DOCUMENTS.json' ) ,
381384 ] ) )
385+ const expectedResult = JSON . stringify ( YAML . load ( ( await loadFileAsString ( pkg . projectsDir , pkg . packageId , EXPECTED_RESULT_FILE ) ) ! ) , undefined , 2 )
386+ expect ( await result . exportDocuments [ 0 ] . data . text ( ) ) . toEqual ( expectedResult )
382387 } )
383388
384389 test ( 'should export merged rest operations group to yaml' , async ( ) => {
385- pkg = LocalRegistry . openPackage ( 'export' , groupToOperationIdsMap )
386- editor = await Editor . openProject ( pkg . packageId , pkg )
387-
388390 const result = await editor . run ( {
389391 ...COMMON_MERGED_GROUP_EXPORT_CONFIG ,
390392 format : FILE_FORMAT_YAML ,
@@ -393,5 +395,7 @@ describe('Export test', () => {
393395 expect ( result ) . toEqual ( exportDocumentsMatcher ( [
394396 exportDocumentMatcher ( 'GROUP_WITH_OPERATIONS_FROM_TWO_DOCUMENTS.yaml' ) ,
395397 ] ) )
398+ const expectedResult = await loadFileAsString ( pkg . projectsDir , pkg . packageId , EXPECTED_RESULT_FILE )
399+ expect ( await result . exportDocuments [ 0 ] . data . text ( ) ) . toEqual ( expectedResult )
396400 } )
397401} )
0 commit comments