Skip to content

Commit 5519aa9

Browse files
fix. try to support ado onebranch, which might lock intermediate file… (#206)
1 parent 6a916c8 commit 5519aa9

File tree

6 files changed

+21
-12
lines changed

6 files changed

+21
-12
lines changed

src/test/commonSuite/NewProject.spec.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import {
2222

2323
import { delay } from "../../utils/pids";
2424
import { makeOneTmpDir } from "../../utils/osUtils";
25-
import { removeDirectoryRecursively } from "../../utils/files";
25+
import { tryRemoveDirectoryRecursively } from "../../utils/files";
2626

2727
const expect = chai.expect;
2828

@@ -93,7 +93,7 @@ describe("New extension project Tests", () => {
9393

9494
after(() => {
9595
if (oneTmpDir) {
96-
void removeDirectoryRecursively(oneTmpDir);
96+
void tryRemoveDirectoryRecursively(oneTmpDir);
9797
oneTmpDir = undefined;
9898
}
9999
});
@@ -165,7 +165,7 @@ describe("New extension project Tests", () => {
165165

166166
after(() => {
167167
if (oneTmpDir) {
168-
void removeDirectoryRecursively(oneTmpDir);
168+
void tryRemoveDirectoryRecursively(oneTmpDir);
169169
oneTmpDir = undefined;
170170
}
171171
});

src/test/utils/NugetLiteHttpService.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import { StreamZipAsync } from "node-stream-zip";
1515

1616
import axios, { AxiosInstance, AxiosResponse } from "axios";
1717
import { makeOneTmpDir } from "../../utils/osUtils";
18-
import { removeDirectoryRecursively } from "../../utils/files";
18+
import { tryRemoveDirectoryRecursively } from "../../utils/files";
1919

2020
const streamFinished$deferred: (
2121
stream: NodeJS.ReadStream | NodeJS.WritableStream | NodeJS.ReadWriteStream,
@@ -93,6 +93,6 @@ export class NugetLiteHttpService {
9393
await zip.extract(null, outputLocation);
9494
await zip.close();
9595

96-
await removeDirectoryRecursively(oneTmpDir);
96+
await tryRemoveDirectoryRecursively(oneTmpDir);
9797
}
9898
}

src/utils/files.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,15 @@ export function removeDirectoryRecursively(directoryFullName: string): Promise<v
4545
});
4646
}
4747

48+
export function tryRemoveDirectoryRecursively(directoryFullName: string): Promise<void> {
49+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
50+
return new Promise<void>((resolve: () => void, _reject: (reason?: any) => void) => {
51+
fs.rm(directoryFullName, { recursive: true, force: true }, (_err: NodeJS.ErrnoException | null) => {
52+
resolve();
53+
});
54+
});
55+
}
56+
4857
export function getCtimeOfAFile(fileFullPath: string): Date {
4958
if (fs.existsSync(fileFullPath)) {
5059
const fileStats: fs.Stats = fs.statSync(fileFullPath);

unit-tests/common/Utils.spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import * as chai from "chai";
99
import * as fs from "fs";
1010

1111
import { makeOneTmpDir } from "../../src/utils/osUtils";
12-
import { removeDirectoryRecursively } from "../../src/utils/files";
12+
import { tryRemoveDirectoryRecursively } from "../../src/utils/files";
1313

1414
const expect = chai.expect;
1515

@@ -19,6 +19,6 @@ describe("Utils unit testes", () => {
1919

2020
expect(fs.existsSync(oneTmpDir)).true;
2121

22-
await removeDirectoryRecursively(oneTmpDir);
22+
await tryRemoveDirectoryRecursively(oneTmpDir);
2323
});
2424
});

unit-tests/common/nuget/NugetCommandService.spec.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import * as path from "path";
1212
import { findExecutable } from "../../../src/utils/executables";
1313
import { makeOneTmpDir } from "../../../src/utils/osUtils";
1414
import { NugetCommandService } from "../../../src/common/nuget/NugetCommandService";
15-
import { removeDirectoryRecursively } from "../../../src/utils/files";
15+
import { tryRemoveDirectoryRecursively } from "../../../src/utils/files";
1616

1717
const expect = chai.expect;
1818
const SdkPackageName = "Microsoft.PowerQuery.SdkTools";
@@ -76,13 +76,13 @@ describe("NugetCommandService unit testes", () => {
7676
),
7777
).true;
7878

79-
await removeDirectoryRecursively(oneTmpDir);
79+
await tryRemoveDirectoryRecursively(oneTmpDir);
8080
}).timeout(9e4);
8181

8282
after(() => {
8383
setTimeout(() => {
8484
if (oneTmpDir) {
85-
void removeDirectoryRecursively(oneTmpDir);
85+
void tryRemoveDirectoryRecursively(oneTmpDir);
8686
oneTmpDir = "";
8787
}
8888
}, 25);

unit-tests/common/nuget/NugetHttpService.spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import * as path from "path";
1111

1212
import { makeOneTmpDir } from "../../../src/utils/osUtils";
1313
import { NugetHttpService } from "../../../src/common/nuget/NugetHttpService";
14-
import { removeDirectoryRecursively } from "../../../src/utils/files";
14+
import { tryRemoveDirectoryRecursively } from "../../../src/utils/files";
1515

1616
const expect = chai.expect;
1717
const SdkPackageName = "Microsoft.PowerQuery.SdkTools";
@@ -34,6 +34,6 @@ describe("NugetHttpService unit testes", () => {
3434
expect(fs.existsSync(path.resolve(oneTmpDir, "Microsoft.PowerQuery.SdkTools.nuspec"))).true;
3535
expect(fs.existsSync(path.resolve(oneTmpDir, "tools", "PQTest.exe"))).true;
3636

37-
await removeDirectoryRecursively(oneTmpDir);
37+
await tryRemoveDirectoryRecursively(oneTmpDir);
3838
}).timeout(3e4);
3939
});

0 commit comments

Comments
 (0)