-
Notifications
You must be signed in to change notification settings - Fork 22
/
config.test.ts
148 lines (145 loc) · 5.56 KB
/
config.test.ts
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
import { debug } from 'debug';
import { loadEthloggerConfig, CliFlags } from '../src/config';
beforeAll(() => {
debug.log = () => {
// ignore
};
});
test('defaults', async () => {
await expect(loadEthloggerConfig({} as CliFlags, true)).resolves.toMatchInlineSnapshot(`
Object {
"abi": Object {
"abiFileExtension": ".json",
"decodeAnonymous": true,
"directory": undefined,
"fingerprintContracts": true,
},
"blockWatcher": Object {
"blocksMaxChunkSize": 25,
"enabled": true,
"maxParallelChunks": 3,
"pollInterval": 500,
"retryWaitTime": [Function],
"startAt": "genesis",
},
"checkpoint": Object {
"filename": "checkpoints.json",
"saveInterval": 250,
},
"contractInfo": Object {
"maxCacheEntries": 25000,
},
"eth": Object {
"chain": undefined,
"client": Object {
"maxBatchSize": 100,
"maxBatchTime": 0,
},
"http": Object {
"maxSockets": 256,
"requestKeepAlive": true,
"timeout": 60000,
"validateCertificate": true,
},
"network": undefined,
"url": undefined,
},
"hec": Object {
"default": Object {
"defaultFields": Object {
"chain": "$CHAIN",
"chainId": "$CHAIN_ID",
"enode": "$ENODE",
"network": "$NETWORK",
"networkId": "$NETWORK_ID",
"platform": "$PLATFORM",
},
"defaultMetadata": Object {
"host": "$ETH_NODE_HOSTNAME",
"source": "ethlogger",
},
"flushTime": 0,
"gzip": true,
"maxQueueEntries": -1,
"maxQueueSize": 512000,
"maxRetries": Infinity,
"maxSockets": 128,
"multipleMetricFormatEnabled": false,
"requestKeepAlive": true,
"retryWaitTime": [Function],
"timeout": 30000,
"token": undefined,
"url": undefined,
"userAgent": "ethlogger-hec-client/$VERSION",
"validateCertificate": true,
"waitForAvailability": 60000,
},
"events": undefined,
"internal": Object {
"defaultFields": Object {
"nodeVersion": "$NODE_VERSION",
"pid": "$PID",
"version": "$VERSION",
},
"defaultMetadata": Object {
"host": "$HOSTNAME",
"source": "ethlogger:internal",
"sourcetype": "ethlogger:internal",
},
"flushTime": 5000,
},
"metrics": undefined,
},
"internalMetrics": Object {
"collectInterval": 1000,
"enabled": false,
},
"nodeInfo": Object {
"collectInterval": 60000,
"enabled": true,
"retryWaitTime": [Function],
},
"nodeMetrics": Object {
"collectInterval": 1000,
"enabled": true,
"retryWaitTime": [Function],
},
"output": Object {
"metricsPrefix": "eth",
"sourcetypes": Object {
"block": "ethereum:block",
"event": "ethereum:transaction:event",
"gethPeer": "ethereum:geth:peer",
"nodeInfo": "ethereum:node:info",
"nodeMetrics": "ethereum:node:metrics",
"pendingtx": "ethereum:transaction:pending",
"transaction": "ethereum:transaction",
},
"type": "hec",
},
"peerInfo": Object {
"collectInterval": 10000,
"enabled": false,
"retryWaitTime": 10000,
},
"pendingTx": Object {
"collectInterval": 10000,
"enabled": false,
"retryWaitTime": 10000,
},
}
`);
});
test('cli flags overrides', async () => {
const config = await loadEthloggerConfig({ 'start-at-block': '-1000' } as any, true);
expect(config.blockWatcher).toMatchInlineSnapshot(`
Object {
"blocksMaxChunkSize": 25,
"enabled": true,
"maxParallelChunks": 3,
"pollInterval": 500,
"retryWaitTime": [Function],
"startAt": -1000,
}
`);
});