@@ -8,7 +8,6 @@ import { replaceVersions } from '../lib/utils/replace-versions.js';
8
8
import { success } from '../lib/success.js' ;
9
9
import SemanticReleaseError from '@semantic-release/error' ;
10
10
import { publish } from '../lib/publish.js' ;
11
- import AdmZip , { IZipEntry } from 'adm-zip' ;
12
11
13
12
const pluginConfig : PluginConfig = {
14
13
type : 'plugin' ,
@@ -22,37 +21,12 @@ const pluginConfig: PluginConfig = {
22
21
workDir : 'publish' ,
23
22
} ;
24
23
25
- let wDir : string ;
24
+ let releasePath : string ;
26
25
const env = process . env ;
27
26
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
-
53
27
beforeAll ( async ( ) => {
54
- wDir = fs . mkdtempSync ( '/tmp/wp-release-' ) ;
55
- pluginConfig . releasePath = wDir ;
28
+ releasePath = fs . mkdtempSync ( '/tmp/wp-release-' ) ;
29
+ pluginConfig . releasePath = releasePath ;
56
30
} ) ;
57
31
58
32
beforeEach ( ( ) => {
@@ -77,30 +51,28 @@ afterEach(async () => {
77
51
} ) ;
78
52
79
53
afterAll ( async ( ) => {
80
- fs . removeSync ( wDir ) ;
54
+ fs . removeSync ( releasePath ) ;
81
55
} ) ;
82
56
83
57
describe ( 'Publish step' , ( ) => {
84
- it ( 'Should zip a complete plugin properly ' , async ( ) => {
58
+ it ( 'Should package a complete plugin' , async ( ) => {
85
59
await prepare ( pluginConfig , contexts . publishContext ) ;
86
60
await publish ( pluginConfig , contexts . publishContext ) ;
87
61
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 ( ' ' ) ;
96
65
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' ) ;
98
70
} ) ;
99
71
100
72
it ( 'Should should remove folders on success' , async ( ) => {
101
73
await success ( pluginConfig , contexts . publishContext ) ;
102
74
103
- const files = fs . readdirSync ( wDir ) . join ( ' ' ) ;
75
+ const files = fs . readdirSync ( releasePath ) . join ( ' ' ) ;
104
76
105
77
expect ( files ) . toContain ( 'package.zip' ) ;
106
78
expect ( files ) . toContain ( 'assets.zip' ) ;
@@ -113,7 +85,7 @@ describe('Publish step', () => {
113
85
try {
114
86
await prepare ( pluginConfig , contexts . publishContext ) ;
115
87
116
- await fs . remove ( path . join ( wDir , 'assets' ) ) ;
88
+ await fs . remove ( path . join ( releasePath , 'assets' ) ) ;
117
89
await publish ( pluginConfig , contexts . publishContext ) ;
118
90
} catch ( err ) {
119
91
expect ( ( err as SemanticReleaseError ) . code ) . toMatch ( / ( E N O E N T | E Z I P ) / ) ;
0 commit comments