Skip to content

Commit 4961fd4

Browse files
committed
fix: remove callbacks
1 parent 7d6fb1b commit 4961fd4

File tree

3 files changed

+121
-99
lines changed

3 files changed

+121
-99
lines changed

test/integration/static/index-test.js

Lines changed: 93 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,13 @@
1-
const { test, after } = require('node:test')
1+
const { test } = require('node:test')
22
const assert = require('node:assert/strict')
3-
const { join } = require('path')
3+
const { join, dirname } = require('path')
44
const { mkdtempSync, mkdirSync, writeFileSync, rmSync } = require('fs')
55
const { tmpdir } = require('os')
66
const inventory = require('@architect/inventory')
77
const { updater } = require('@architect/utils')
88

9-
let tmpDirs = []
10-
119
function createTmpDir (structure) {
1210
const tmpDir = mkdtempSync(join(tmpdir(), 'arc-test-'))
13-
tmpDirs.push(tmpDir)
14-
const { dirname } = require('path')
1511

1612
function createStructure (base, obj) {
1713
for (const [ key, value ] of Object.entries(obj)) {
@@ -33,16 +29,14 @@ function createTmpDir (structure) {
3329
return tmpDir
3430
}
3531

36-
after(() => {
37-
tmpDirs.forEach(dir => {
38-
try {
39-
rmSync(dir, { recursive: true, force: true })
40-
}
41-
catch {
42-
// Ignore cleanup errors
43-
}
44-
})
45-
})
32+
function cleanupTmpDir (dir) {
33+
try {
34+
rmSync(dir, { recursive: true, force: true })
35+
}
36+
catch {
37+
// Ignore cleanup errors
38+
}
39+
}
4640

4741
let published
4842
function publish (params, callback) {
@@ -105,99 +99,139 @@ test('Set up env', () => {
10599
assert.ok(staticDeployMod, 'Static asset deployment module is present')
106100
})
107101

108-
test(`Skip static deploy if @static isn't defined`, (t, done) => {
102+
test(`Skip static deploy if @static isn't defined`, async () => {
109103
setup()
110104
let arc = '@app\n an-app'
111105
let cwd = createTmpDir({ 'app.arc': arc })
112-
staticDeploy(cwd, err => {
113-
if (err) assert.fail(err)
114-
assert.ok(!published, 'Publish not called')
115-
done()
106+
await new Promise((resolve, reject) => {
107+
staticDeploy(cwd, err => {
108+
cleanupTmpDir(cwd)
109+
if (err) reject(err)
110+
else {
111+
assert.ok(!published, 'Publish not called')
112+
resolve()
113+
}
114+
})
116115
})
117116
})
118117

119-
test(`Static deploy exits gracefully if @http is defined, but public/ folder is not present`, (t, done) => {
118+
test(`Static deploy exits gracefully if @http is defined, but public/ folder is not present`, async () => {
120119
setup()
121120
let arc = '@app\n an-app\n @http'
122121
let cwd = createTmpDir({ 'app.arc': arc })
123-
staticDeploy(cwd, err => {
124-
if (err) assert.fail(err)
125-
assert.ok(!published, 'Publish not called')
126-
done()
122+
await new Promise((resolve, reject) => {
123+
staticDeploy(cwd, err => {
124+
cleanupTmpDir(cwd)
125+
if (err) reject(err)
126+
else {
127+
assert.ok(!published, 'Publish not called')
128+
resolve()
129+
}
130+
})
127131
})
128132
})
129133

130-
test(`Publish static deploy if @static is defined`, (t, done) => {
134+
test(`Publish static deploy if @static is defined`, async () => {
131135
setup()
132136
let arc = '@app\n an-app\n @static'
133137
let cwd = createTmpDir({
134138
'app.arc': arc,
135139
'public': {},
136140
})
137-
staticDeploy(cwd, err => {
138-
if (err) assert.fail(err)
139-
assert.strictEqual(published.Bucket, params.bucket, 'Bucket is unchanged')
140-
assert.strictEqual(published.prefix, null, 'Prefix set to null by default')
141-
assert.strictEqual(published.prune, null, 'Prune set to null by default')
142-
assert.strictEqual(published.region, params.region, 'Region is unchaged')
143-
done()
141+
await new Promise((resolve, reject) => {
142+
staticDeploy(cwd, err => {
143+
cleanupTmpDir(cwd)
144+
if (err) reject(err)
145+
else {
146+
assert.strictEqual(published.Bucket, params.bucket, 'Bucket is unchanged')
147+
assert.strictEqual(published.prefix, null, 'Prefix set to null by default')
148+
assert.strictEqual(published.prune, null, 'Prune set to null by default')
149+
assert.strictEqual(published.region, params.region, 'Region is unchaged')
150+
resolve()
151+
}
152+
})
144153
})
145154
})
146155

147-
test(`Publish static deploy if @http is defined and public/ folder is present`, (t, done) => {
156+
test(`Publish static deploy if @http is defined and public/ folder is present`, async () => {
148157
setup()
149158
let arc = '@app\n an-app\n @http'
150159
let cwd = createTmpDir({ 'app.arc': arc, 'public': {} })
151-
staticDeploy(cwd, err => {
152-
if (err) assert.fail(err)
153-
assert.ok(published, 'Publish was called')
154-
done()
160+
await new Promise((resolve, reject) => {
161+
staticDeploy(cwd, err => {
162+
cleanupTmpDir(cwd)
163+
if (err) reject(err)
164+
else {
165+
assert.ok(published, 'Publish was called')
166+
resolve()
167+
}
168+
})
155169
})
156170
})
157171

158-
test(`Respect prune param`, (t, done) => {
172+
test(`Respect prune param`, async () => {
159173
setup()
160174
let arc = '@app\n an-app\n @static'
161175
let cwd = createTmpDir({ 'app.arc': arc, 'public': {} })
162176
params.prune = true
163-
staticDeploy(cwd, err => {
164-
if (err) assert.fail(err)
165-
assert.ok(published.prune, 'Prune is unchaged')
166-
done()
177+
await new Promise((resolve, reject) => {
178+
staticDeploy(cwd, err => {
179+
cleanupTmpDir(cwd)
180+
if (err) reject(err)
181+
else {
182+
assert.ok(published.prune, 'Prune is unchaged')
183+
resolve()
184+
}
185+
})
167186
})
168187
})
169188

170-
test(`Respect prune setting in project manifest`, (t, done) => {
189+
test(`Respect prune setting in project manifest`, async () => {
171190
setup()
172191
let arc = '@app\n an-app\n @static\n prune true'
173192
let cwd = createTmpDir({ 'app.arc': arc, 'public': {} })
174-
staticDeploy(cwd, err => {
175-
if (err) assert.fail(err)
176-
assert.ok(published.prune, 'Prune is enabled')
177-
done()
193+
await new Promise((resolve, reject) => {
194+
staticDeploy(cwd, err => {
195+
cleanupTmpDir(cwd)
196+
if (err) reject(err)
197+
else {
198+
assert.ok(published.prune, 'Prune is enabled')
199+
resolve()
200+
}
201+
})
178202
})
179203
})
180204

181-
test(`Respect prefix param`, (t, done) => {
205+
test(`Respect prefix param`, async () => {
182206
setup()
183207
let arc = '@app\n an-app\n @static'
184208
let cwd = createTmpDir({ 'app.arc': arc, 'public': {} })
185209
params.prefix = 'some-prefix'
186-
staticDeploy(cwd, err => {
187-
if (err) assert.fail(err)
188-
assert.strictEqual(published.prefix, 'some-prefix', 'Prefix is unchanged')
189-
done()
210+
await new Promise((resolve, reject) => {
211+
staticDeploy(cwd, err => {
212+
cleanupTmpDir(cwd)
213+
if (err) reject(err)
214+
else {
215+
assert.strictEqual(published.prefix, 'some-prefix', 'Prefix is unchanged')
216+
resolve()
217+
}
218+
})
190219
})
191220
})
192221

193-
test(`Respect prefix setting in project manifest`, (t, done) => {
222+
test(`Respect prefix setting in project manifest`, async () => {
194223
setup()
195224
let arc = '@app\n an-app\n @static\n prefix some-prefix'
196225
let cwd = createTmpDir({ 'app.arc': arc, 'public': {} })
197-
staticDeploy(cwd, err => {
198-
if (err) assert.fail(err)
199-
assert.strictEqual(published.prefix, 'some-prefix', 'Got correct prefix setting')
200-
done()
226+
await new Promise((resolve, reject) => {
227+
staticDeploy(cwd, err => {
228+
cleanupTmpDir(cwd)
229+
if (err) reject(err)
230+
else {
231+
assert.strictEqual(published.prefix, 'some-prefix', 'Got correct prefix setting')
232+
resolve()
233+
}
234+
})
201235
})
202236
})
203237

test/integration/static/publish/index-test.js

Lines changed: 18 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,16 @@
1-
const { test, after } = require('node:test')
1+
const { test } = require('node:test')
22
const assert = require('node:assert/strict')
33
const awsLite = require('@aws-lite/client')
4-
const { join } = require('path')
4+
const { join, dirname } = require('path')
55
const { mkdtempSync, mkdirSync, writeFileSync, rmSync } = require('fs')
66
const { tmpdir } = require('os')
77
const _inventory = require('@architect/inventory')
88
const { updater } = require('@architect/utils')
99

10-
let tmpDirs = []
10+
let tmpDir
1111

1212
function createTmpDir (structure) {
13-
const tmpDir = mkdtempSync(join(tmpdir(), 'arc-test-'))
14-
tmpDirs.push(tmpDir)
15-
const { dirname } = require('path')
13+
const dir = mkdtempSync(join(tmpdir(), 'arc-test-'))
1614

1715
function createStructure (base, obj) {
1816
for (const [ key, value ] of Object.entries(obj)) {
@@ -23,28 +21,17 @@ function createTmpDir (structure) {
2321
}
2422
else {
2523
// Ensure parent directory exists for files
26-
const dir = dirname(path)
27-
mkdirSync(dir, { recursive: true })
24+
const parentDir = dirname(path)
25+
mkdirSync(parentDir, { recursive: true })
2826
writeFileSync(path, value || '')
2927
}
3028
}
3129
}
3230

33-
createStructure(tmpDir, structure)
34-
return tmpDir
31+
createStructure(dir, structure)
32+
return dir
3533
}
3634

37-
after(() => {
38-
tmpDirs.forEach(dir => {
39-
try {
40-
rmSync(dir, { recursive: true, force: true })
41-
}
42-
catch {
43-
// Ignore cleanup errors
44-
}
45-
})
46-
})
47-
4835
let inventory
4936
let params
5037
let putted
@@ -105,15 +92,15 @@ test('Set up env', async () => {
10592
awsLite.testing.enable()
10693
assert.ok(awsLite.testing.isEnabled(), 'AWS client testing enabled')
10794

108-
let cwd = createTmpDir({
95+
tmpDir = createTmpDir({
10996
'app.arc': arc,
11097
public: {
11198
'index.html': content,
11299
'something.json': content,
113100
'index.js': content,
114101
},
115102
})
116-
inventory = await _inventory({ cwd })
103+
inventory = await _inventory({ cwd: tmpDir })
117104
assert.ok(inventory, 'Got inventory obj')
118105
})
119106

@@ -169,6 +156,14 @@ test(`Static asset deletion (deployAction is 'delete')`, (t, done) => {
169156
})
170157

171158
test('Teardown', () => {
159+
if (tmpDir) {
160+
try {
161+
rmSync(tmpDir, { recursive: true, force: true })
162+
}
163+
catch {
164+
// Ignore cleanup errors
165+
}
166+
}
172167
awsLite.testing.disable()
173168
assert.ok(!awsLite.testing.isEnabled(), 'Done')
174169
})

test/unit/static/publish/s3/put-files/index-test.js

Lines changed: 10 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,16 @@
1-
const { test, before, after } = require('node:test')
1+
const { test, before } = require('node:test')
22
const assert = require('node:assert/strict')
33
let awsLite = require('@aws-lite/client')
44
const { mkdtempSync, mkdirSync, writeFileSync, rmSync } = require('fs')
55
const { tmpdir } = require('os')
6-
let { join, sep } = require('path')
6+
let { join, sep, dirname } = require('path')
77
let crypto = require('crypto')
88
let { pathToUnix } = require('@architect/utils')
99
let cwd = process.cwd()
1010
let filePath = join(process.cwd(), 'src', 'static', 'publish', 's3', 'put-files')
1111

12-
let tmpDirs = []
13-
1412
function createTmpDir (structure) {
1513
const tmpDir = mkdtempSync(join(tmpdir(), 'arc-test-'))
16-
tmpDirs.push(tmpDir)
17-
const { dirname } = require('path')
1814

1915
function createStructure (base, obj) {
2016
for (const [ key, value ] of Object.entries(obj)) {
@@ -36,17 +32,6 @@ function createTmpDir (structure) {
3632
return tmpDir
3733
}
3834

39-
after(() => {
40-
tmpDirs.forEach(dir => {
41-
try {
42-
rmSync(dir, { recursive: true, force: true })
43-
}
44-
catch {
45-
// Ignore cleanup errors
46-
}
47-
})
48-
})
49-
5035
// Mock put-params by overriding the require cache
5136
let Module = require('module')
5237
let originalRequire = Module.prototype.require
@@ -107,6 +92,14 @@ function setup (data) {
10792
}
10893
function reset () {
10994
awsLite.testing.reset()
95+
if (tmp) {
96+
try {
97+
rmSync(tmp, { recursive: true, force: true })
98+
}
99+
catch {
100+
// Ignore cleanup errors
101+
}
102+
}
110103
process.chdir(cwd)
111104
}
112105

0 commit comments

Comments
 (0)