-
Notifications
You must be signed in to change notification settings - Fork 18
/
Copy pathgetDeliveryServiceProperties.test.ts
125 lines (118 loc) · 3.97 KB
/
getDeliveryServiceProperties.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
import { existsSync, unlinkSync, writeFileSync } from 'fs';
import { resolve } from 'path';
import { stringify } from 'yaml';
import { getDeliveryServiceProperties } from './getDeliveryServiceProperties';
import { NotificationChannelType } from '@dm3-org/dm3-lib-delivery';
describe('ReadDeliveryServiceProperties', () => {
let path: string;
beforeEach(() => {
path = resolve(__dirname, './config.test.yml');
});
afterEach(() => {
if (existsSync(path)) {
unlinkSync(path);
}
});
it('Returns default DeliveryServiceProfile if config file is undefined', () => {
const config = getDeliveryServiceProperties('/unknown-path', {
messageTTL: 12345,
sizeLimit: 456,
notificationChannel: [],
smtpHost: 'smtp.host',
smtpPort: 587,
smtpEmail: '[email protected]',
smtpUsername: '[email protected]',
smtpPassword: 'dm312345',
});
expect(config).toStrictEqual({
messageTTL: 12345,
sizeLimit: 456,
notificationChannel: [],
smtpHost: 'smtp.host',
smtpPort: 587,
smtpEmail: '[email protected]',
smtpUsername: '[email protected]',
smtpPassword: 'dm312345',
});
});
it('Returns Config from path', () => {
writeFileSync(
path,
stringify({
messageTTL: 12345,
sizeLimit: 456,
notificationChannel: [
{
type: NotificationChannelType.EMAIL,
config: {
host: 'mail.alice.com',
port: 465,
secure: true,
auth: {
user: 'foo',
pass: 'bar',
},
senderAddress: '[email protected]',
},
},
],
smtpHost: 'smtp.host',
smtpPort: 587,
smtpEmail: '[email protected]',
smtpUsername: '[email protected]',
smtpPassword: 'dm312345',
}),
{ encoding: 'utf-8' },
);
const config = getDeliveryServiceProperties(path);
expect(config).toStrictEqual({
messageTTL: 12345,
sizeLimit: 456,
notificationChannel: [
{
type: NotificationChannelType.EMAIL,
config: {
host: 'mail.alice.com',
port: 465,
secure: true,
auth: {
user: 'foo',
pass: 'bar',
},
senderAddress: '[email protected]',
},
},
],
smtpHost: 'smtp.host',
smtpPort: 587,
smtpEmail: '[email protected]',
smtpUsername: '[email protected]',
smtpPassword: 'dm312345',
});
});
it('Adds default properties if config.yml is not fully specified', () => {
writeFileSync(
path,
stringify({
messageTTL: 12345,
smtpHost: 'smtp.host',
smtpPort: 587,
smtpEmail: '[email protected]',
smtpUsername: '[email protected]',
smtpPassword: 'dm312345',
}),
{ encoding: 'utf-8' },
);
const config = getDeliveryServiceProperties(path);
expect(config).toStrictEqual({
messageTTL: 12345,
sizeLimit: 100000,
notificationChannel: [],
smtpHost: 'smtp.host',
smtpPort: 587,
smtpEmail: '[email protected]',
smtpUsername: '[email protected]',
smtpPassword: 'dm312345',
});
});
});