@@ -25,7 +25,7 @@ export class File {
25
25
remotePath ?: string ;
26
26
27
27
constructor ( readonly name : string , content ?: string [ ] ) {
28
- if ( content ) {
28
+ if ( content ) {
29
29
this . content = content ;
30
30
} else {
31
31
this . changeContent ( ) ;
@@ -162,13 +162,45 @@ export const DeployToolsSuite: TestSuite = {
162
162
} ;
163
163
164
164
await CompileTools . runAction ( instance , vscode . Uri . joinPath ( fakeProject . localPath ! , "hello.txt" ) , action ) ;
165
-
165
+
166
166
const localRoot = vscode . workspace . getWorkspaceFolder ( fakeProject . localPath ! ) ?. uri ;
167
167
assert . ok ( localRoot , "No workspace folder" ) ;
168
168
assert . ok ( existsSync ( vscode . Uri . joinPath ( localRoot , `random` , `random.txt` ) . fsPath ) ) ;
169
169
assert . ok ( existsSync ( vscode . Uri . joinPath ( localRoot , "hello.txt" ) . fsPath ) ) ;
170
170
}
171
171
} ,
172
+ {
173
+ name : `Test .deployignore` , test : async ( ) => {
174
+ const workspace = vscode . workspace . workspaceFolders ! [ 0 ] ;
175
+ const getRootFile = ( name : string ) => vscode . Uri . joinPath ( workspace . uri , name ) ;
176
+ const prepare = async ( name : string , rollback ?: boolean ) => {
177
+ const file = getRootFile ( rollback ? `${ name } _backup` : name ) ;
178
+ if ( existsSync ( file . fsPath ) ) {
179
+ await vscode . workspace . fs . rename ( file , getRootFile ( rollback ? name : `${ name } _backup` ) , { overwrite : true } ) ;
180
+ }
181
+ return file ;
182
+ } ;
183
+
184
+ try {
185
+ const toIgnore = [ "ignore1" , "ignore2" , "ignore3" , "ignore4" , ".gitignore" , ".deployignore" , ".notignored" ] ;
186
+
187
+ const deployignore = await prepare ( ".deployignore" ) ;
188
+ vscode . workspace . fs . writeFile ( deployignore , Buffer . from ( "**/ignore2\n**/ignore4" ) ) ;
189
+ const ignoreDeploy = await DeployTools . getDefaultIgnoreRules ( workspace ) ;
190
+ assert . strictEqual ( ignoreDeploy . filter ( toIgnore ) . join ( "," ) , "ignore1,ignore3,.notignored" ) ;
191
+ await vscode . workspace . fs . delete ( deployignore ) ;
192
+
193
+ const gitignore = await prepare ( ".gitignore" ) ;
194
+ await vscode . workspace . fs . writeFile ( gitignore , Buffer . from ( "**/ignore1\n**/ignore3" ) ) ;
195
+ const ignoreGit = await DeployTools . getDefaultIgnoreRules ( workspace ) ;
196
+ assert . strictEqual ( ignoreGit . filter ( toIgnore ) . join ( "," ) , "ignore2,ignore4,.notignored" ) ;
197
+ }
198
+ finally {
199
+ await prepare ( ".gitignore" , true ) ;
200
+ await prepare ( ".deployignore" , true ) ;
201
+ }
202
+ }
203
+ } ,
172
204
] ,
173
205
after : async ( ) => {
174
206
if ( fakeProject . localPath && existsSync ( fakeProject . localPath . fsPath ) ) {
0 commit comments