@loopback/testlab 3.1.8 → 3.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +11 -0
- package/dist/test-sandbox.d.ts +2 -1
- package/dist/test-sandbox.js +12 -8
- package/dist/test-sandbox.js.map +1 -1
- package/package.json +5 -5
- package/src/test-sandbox.ts +18 -10
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,17 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [3.2.0](https://github.com/strongloop/loopback-next/compare/@loopback/testlab@3.1.8...@loopback/testlab@3.2.0) (2020-06-30)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* **testlab:** add transform option for sandbox copyFile ([f5565fb](https://github.com/strongloop/loopback-next/commit/f5565fbfce2e88f4f0accaaa620f4237dc67545c))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
6
17
|
## [3.1.8](https://github.com/strongloop/loopback-next/compare/@loopback/testlab@3.1.7...@loopback/testlab@3.1.8) (2020-06-23)
|
|
7
18
|
|
|
8
19
|
|
package/dist/test-sandbox.d.ts
CHANGED
|
@@ -69,8 +69,9 @@ export declare class TestSandbox {
|
|
|
69
69
|
* @param src - Absolute path of file to be copied to the TestSandbox
|
|
70
70
|
* @param dest - Optional. Destination filename of the copy operation
|
|
71
71
|
* (relative to TestSandbox). Original filename used if not specified.
|
|
72
|
+
* @param transform - Optional. A function to transform the file content.
|
|
72
73
|
*/
|
|
73
|
-
copyFile(src: string, dest?: string): Promise<void>;
|
|
74
|
+
copyFile(src: string, dest?: string, transform?: (content: string) => string): Promise<void>;
|
|
74
75
|
/**
|
|
75
76
|
* Creates a new file and writes the given data serialized as JSON.
|
|
76
77
|
*
|
package/dist/test-sandbox.js
CHANGED
|
@@ -95,12 +95,20 @@ class TestSandbox {
|
|
|
95
95
|
* @param src - Absolute path of file to be copied to the TestSandbox
|
|
96
96
|
* @param dest - Optional. Destination filename of the copy operation
|
|
97
97
|
* (relative to TestSandbox). Original filename used if not specified.
|
|
98
|
+
* @param transform - Optional. A function to transform the file content.
|
|
98
99
|
*/
|
|
99
|
-
async copyFile(src, dest) {
|
|
100
|
+
async copyFile(src, dest, transform) {
|
|
100
101
|
dest = dest
|
|
101
102
|
? path_1.resolve(this.path, dest)
|
|
102
103
|
: path_1.resolve(this.path, path_1.parse(src).base);
|
|
103
|
-
|
|
104
|
+
if (transform == null) {
|
|
105
|
+
await fs_extra_1.copy(src, dest);
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
let content = await fs_extra_1.readFile(src, 'utf-8');
|
|
109
|
+
content = transform(content);
|
|
110
|
+
await fs_extra_1.outputFile(dest, content, { encoding: 'utf-8' });
|
|
111
|
+
}
|
|
104
112
|
if (path_1.parse(src).ext === '.js' && fs_extra_1.pathExists(src + '.map')) {
|
|
105
113
|
const srcMap = src + '.map';
|
|
106
114
|
await fs_extra_1.appendFile(dest, `\n//# sourceMappingURL=${srcMap}`);
|
|
@@ -114,9 +122,7 @@ class TestSandbox {
|
|
|
114
122
|
*/
|
|
115
123
|
async writeJsonFile(dest, data) {
|
|
116
124
|
dest = path_1.resolve(this.path, dest);
|
|
117
|
-
|
|
118
|
-
await fs_extra_1.ensureDir(destDir);
|
|
119
|
-
return fs_extra_1.writeJson(dest, data, { spaces: 2 });
|
|
125
|
+
return fs_extra_1.outputJson(dest, data, { spaces: 2 });
|
|
120
126
|
}
|
|
121
127
|
/**
|
|
122
128
|
* Creates a new file and writes the given data as a UTF-8-encoded text.
|
|
@@ -126,9 +132,7 @@ class TestSandbox {
|
|
|
126
132
|
*/
|
|
127
133
|
async writeTextFile(dest, data) {
|
|
128
134
|
dest = path_1.resolve(this.path, dest);
|
|
129
|
-
|
|
130
|
-
await fs_extra_1.ensureDir(destDir);
|
|
131
|
-
return fs_extra_1.writeFile(dest, data, { encoding: 'utf-8' });
|
|
135
|
+
return fs_extra_1.outputFile(dest, data, 'utf-8');
|
|
132
136
|
}
|
|
133
137
|
}
|
|
134
138
|
exports.TestSandbox = TestSandbox;
|
package/dist/test-sandbox.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-sandbox.js","sourceRoot":"","sources":["../src/test-sandbox.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,iCAAiC;AACjC,+CAA+C;AAC/C,gEAAgE;;;AAEhE,
|
|
1
|
+
{"version":3,"file":"test-sandbox.js","sourceRoot":"","sources":["../src/test-sandbox.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@loopback/testlab",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.2.0",
|
|
4
4
|
"description": "A collection of test utilities we use to write LoopBack tests.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"@types/fs-extra": "^9.0.1",
|
|
27
27
|
"@types/shot": "^4.0.0",
|
|
28
28
|
"@types/sinon": "^9.0.4",
|
|
29
|
-
"@types/supertest": "^2.0.
|
|
29
|
+
"@types/supertest": "^2.0.10",
|
|
30
30
|
"express": "^4.17.1",
|
|
31
31
|
"fs-extra": "^9.0.1",
|
|
32
32
|
"oas-validator": "^4.0.3",
|
|
@@ -36,8 +36,8 @@
|
|
|
36
36
|
"tslib": "^2.0.0"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
|
-
"@loopback/build": "^6.
|
|
40
|
-
"@loopback/eslint-config": "^8.0.
|
|
39
|
+
"@loopback/build": "^6.1.0",
|
|
40
|
+
"@loopback/eslint-config": "^8.0.3",
|
|
41
41
|
"@types/node": "^10.17.26"
|
|
42
42
|
},
|
|
43
43
|
"files": [
|
|
@@ -53,5 +53,5 @@
|
|
|
53
53
|
"url": "https://github.com/strongloop/loopback-next.git",
|
|
54
54
|
"directory": "packages/testlab"
|
|
55
55
|
},
|
|
56
|
-
"gitHead": "
|
|
56
|
+
"gitHead": "b89db3d3b8be6a36e63e91c2331d217fda7538de"
|
|
57
57
|
}
|
package/src/test-sandbox.ts
CHANGED
|
@@ -10,10 +10,11 @@ import {
|
|
|
10
10
|
ensureDir,
|
|
11
11
|
ensureDirSync,
|
|
12
12
|
mkdtempSync,
|
|
13
|
+
outputFile,
|
|
14
|
+
outputJson,
|
|
13
15
|
pathExists,
|
|
16
|
+
readFile,
|
|
14
17
|
remove,
|
|
15
|
-
writeFile,
|
|
16
|
-
writeJson,
|
|
17
18
|
} from 'fs-extra';
|
|
18
19
|
import {join, parse, resolve} from 'path';
|
|
19
20
|
|
|
@@ -131,13 +132,24 @@ export class TestSandbox {
|
|
|
131
132
|
* @param src - Absolute path of file to be copied to the TestSandbox
|
|
132
133
|
* @param dest - Optional. Destination filename of the copy operation
|
|
133
134
|
* (relative to TestSandbox). Original filename used if not specified.
|
|
135
|
+
* @param transform - Optional. A function to transform the file content.
|
|
134
136
|
*/
|
|
135
|
-
async copyFile(
|
|
137
|
+
async copyFile(
|
|
138
|
+
src: string,
|
|
139
|
+
dest?: string,
|
|
140
|
+
transform?: (content: string) => string,
|
|
141
|
+
): Promise<void> {
|
|
136
142
|
dest = dest
|
|
137
143
|
? resolve(this.path, dest)
|
|
138
144
|
: resolve(this.path, parse(src).base);
|
|
139
145
|
|
|
140
|
-
|
|
146
|
+
if (transform == null) {
|
|
147
|
+
await copy(src, dest);
|
|
148
|
+
} else {
|
|
149
|
+
let content = await readFile(src, 'utf-8');
|
|
150
|
+
content = transform(content);
|
|
151
|
+
await outputFile(dest, content, {encoding: 'utf-8'});
|
|
152
|
+
}
|
|
141
153
|
|
|
142
154
|
if (parse(src).ext === '.js' && pathExists(src + '.map')) {
|
|
143
155
|
const srcMap = src + '.map';
|
|
@@ -153,9 +165,7 @@ export class TestSandbox {
|
|
|
153
165
|
*/
|
|
154
166
|
async writeJsonFile(dest: string, data: unknown): Promise<void> {
|
|
155
167
|
dest = resolve(this.path, dest);
|
|
156
|
-
|
|
157
|
-
await ensureDir(destDir);
|
|
158
|
-
return writeJson(dest, data, {spaces: 2});
|
|
168
|
+
return outputJson(dest, data, {spaces: 2});
|
|
159
169
|
}
|
|
160
170
|
|
|
161
171
|
/**
|
|
@@ -166,8 +176,6 @@ export class TestSandbox {
|
|
|
166
176
|
*/
|
|
167
177
|
async writeTextFile(dest: string, data: string): Promise<void> {
|
|
168
178
|
dest = resolve(this.path, dest);
|
|
169
|
-
|
|
170
|
-
await ensureDir(destDir);
|
|
171
|
-
return writeFile(dest, data, {encoding: 'utf-8'});
|
|
179
|
+
return outputFile(dest, data, 'utf-8');
|
|
172
180
|
}
|
|
173
181
|
}
|