@@ -8,7 +8,6 @@ import { replaceVersions } from '../lib/utils/replace-versions.js';
88import { success } from '../lib/success.js' ;
99import SemanticReleaseError from '@semantic-release/error' ;
1010import { publish } from '../lib/publish.js' ;
11- import AdmZip , { IZipEntry } from 'adm-zip' ;
1211
1312const pluginConfig : PluginConfig = {
1413 type : 'plugin' ,
@@ -22,37 +21,12 @@ const pluginConfig: PluginConfig = {
2221 workDir : 'publish' ,
2322} ;
2423
25- let wDir : string ;
24+ let releasePath : string ;
2625const env = process . env ;
2726
28- function readZip ( dir : string , file : string , pfx : RegExp = / .^ / ) : Set < string > {
29- return new Set (
30- new AdmZip ( path . join ( dir , file ) )
31- . getEntries ( )
32- . map ( ( { entryName } ) => entryName . replace ( pfx , '' ) . replace ( / \/ $ / , '' ) )
33- . filter ( ( e ) => e !== '' && ( pfx . source == '.^' || ! e . match ( / \/ / ) ) ) ,
34- ) ;
35- }
36-
37- function readDir (
38- root : string ,
39- dir : string ,
40- recursive : boolean = false ,
41- ) : Set < string > {
42- return new Set (
43- fs . readdirSync ( path . join ( root , dir ) , {
44- recursive,
45- } ) as string [ ] ,
46- ) ;
47- }
48-
49- function readFile ( root : string , file : string ) : string {
50- return fs . readFileSync ( path . join ( root , file ) , 'utf8' ) ;
51- }
52-
5327beforeAll ( async ( ) => {
54- wDir = fs . mkdtempSync ( '/tmp/wp-release-' ) ;
55- pluginConfig . releasePath = wDir ;
28+ releasePath = fs . mkdtempSync ( '/tmp/wp-release-' ) ;
29+ pluginConfig . releasePath = releasePath ;
5630} ) ;
5731
5832beforeEach ( ( ) => {
@@ -77,30 +51,28 @@ afterEach(async () => {
7751} ) ;
7852
7953afterAll ( async ( ) => {
80- fs . removeSync ( wDir ) ;
54+ fs . removeSync ( releasePath ) ;
8155} ) ;
8256
8357describe ( 'Publish step' , ( ) => {
84- it ( 'Should zip a complete plugin properly ' , async ( ) => {
58+ it ( 'Should package a complete plugin' , async ( ) => {
8559 await prepare ( pluginConfig , contexts . publishContext ) ;
8660 await publish ( pluginConfig , contexts . publishContext ) ;
8761
88- expect ( readFile ( path . join ( wDir , 'dist-test' ) , 'readme.txt' ) ) . toMatch (
89- / ^ S t a b l e t a g : 1 .0 .0 $ / gm,
90- ) ;
91- expect ( readZip ( wDir , 'package.zip' , / ^ d i s t - t e s t \/ / ) ) . toEqual (
92- readDir ( wDir , 'dist-test' ) ,
93- ) ;
94- expect ( readZip ( wDir , 'assets.zip' ) ) . toEqual ( readDir ( wDir , 'assets' , true ) ) ;
95- expect ( readFile ( wDir , 'VERSION' ) ) . toEqual ( '1.0.0' ) ;
62+ const distFolder = fs
63+ . readdirSync ( path . join ( releasePath , 'dist-test' ) )
64+ . join ( ' ' ) ;
9665
97- // expect readZip(releasePath, 'assets.zip');
66+ expect ( distFolder ) . not . toContain ( 'node_modules' ) ;
67+ expect ( distFolder ) . toContain ( 'vendor' ) ;
68+ expect ( distFolder ) . toContain ( 'dist-test.php' ) ;
69+ expect ( distFolder ) . toContain ( 'test1.php' ) ;
9870 } ) ;
9971
10072 it ( 'Should should remove folders on success' , async ( ) => {
10173 await success ( pluginConfig , contexts . publishContext ) ;
10274
103- const files = fs . readdirSync ( wDir ) . join ( ' ' ) ;
75+ const files = fs . readdirSync ( releasePath ) . join ( ' ' ) ;
10476
10577 expect ( files ) . toContain ( 'package.zip' ) ;
10678 expect ( files ) . toContain ( 'assets.zip' ) ;
@@ -113,7 +85,7 @@ describe('Publish step', () => {
11385 try {
11486 await prepare ( pluginConfig , contexts . publishContext ) ;
11587
116- await fs . remove ( path . join ( wDir , 'assets' ) ) ;
88+ await fs . remove ( path . join ( releasePath , 'assets' ) ) ;
11789 await publish ( pluginConfig , contexts . publishContext ) ;
11890 } catch ( err ) {
11991 expect ( ( err as SemanticReleaseError ) . code ) . toMatch ( / ( E N O E N T | E Z I P ) / ) ;
0 commit comments