-
Notifications
You must be signed in to change notification settings - Fork 25
Expand file tree
/
Copy pathjest.config.ts
More file actions
85 lines (70 loc) · 2.92 KB
/
Copy pathjest.config.ts
File metadata and controls
85 lines (70 loc) · 2.92 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
/*
* For a detailed explanation regarding each configuration property and type check, visit:
* https://jestjs.io/docs/en/configuration.html
*/
import { Bee, BZZ } from '@ethersphere/bee-js'
import type { Config } from '@jest/types'
import { Dates, System } from 'cafe-utility'
import { CommandLog, VerbosityLevel } from './src/command/root-command/command-log'
import { getPssAddress } from './test/utility/address'
import { getOrBuyStamp } from './test/utility/stamp'
export default async (): Promise<Config.InitialOptions> => {
/**
* SKIP_WORKER can be enabled when running a subset of the tests manually,
* which do not require any worker nodes, and therefore the stack
* only consists a single queen node as well
*/
const console = new CommandLog(VerbosityLevel.Normal)
process.env.SKIP_VERSION_CHECK = 'true'
if (!process.env.SKIP_WORKER) {
process.env.WORKER_PSS_ADDRESS = (await getPssAddress('http://localhost:1635')).toCompressedHex()
}
if (!process.env.TEST_STAMP) {
process.env.TEST_STAMP = (await getOrBuyStamp()).toHex()
}
for (let i = 0; i < 5; i++) {
const port = 1633 + i * 2
const bee = new Bee(`http://localhost:${port}`)
const startedAt = Date.now()
console.log('Waiting for Bee node to warm up on port', port)
await System.waitFor(async () => (await bee.getStatus()).isWarmingUp === false, {
attempts: 300,
waitMillis: Dates.seconds(1),
requiredConsecutivePasses: 3,
})
const elapsed = Date.now() - startedAt
console.log(`Bee node on port ${port} warmed up in ${elapsed} milliseconds`)
}
for (let i = 0; i < 5; i++) {
const port = 1633 + i * 2
const bee = new Bee(`http://localhost:${port}`)
console.log('Asserting chequebook balance on port', port)
const chequebookBalance = await bee.getChequebookBalance()
if (!chequebookBalance.totalBalance.eq(BZZ.fromDecimalString('10'))) {
throw Error('Chequebook total balance is not 10 xBZZ: ' + chequebookBalance.totalBalance.toDecimalString())
}
console.log(`Chequebook balance on port ${port} is 10 xBZZ`)
}
return {
collectCoverage: process.env.SKIP_COVERAGE !== 'true',
coverageDirectory: 'coverage',
coverageReporters: ['lcov', 'json-summary'],
collectCoverageFrom: ['src/**/*.ts'],
moduleDirectories: ['node_modules'],
// Run tests from one or more projects
projects: [
{
preset: 'ts-jest',
displayName: 'node',
testEnvironment: 'node',
testRegex: 'test/.*\\.spec\\.ts',
},
] as unknown[] as string[], // bad types
// The root directory that Jest should scan for tests and modules within
rootDir: 'test',
// An array of regexp pattern strings that are matched against all test paths, matched tests are skipped
testPathIgnorePatterns: ['/node_modules/', '/test/e2e/'],
// Increase timeout since we have long running cryptographic functions
testTimeout: Dates.minutes(6),
}
}