Skip to content

Commit 9d75f04

Browse files
committed
add await for asynchronous assertions
1 parent aa6a5b3 commit 9d75f04

File tree

1 file changed

+18
-12
lines changed

1 file changed

+18
-12
lines changed

test/index.ts

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -49,26 +49,26 @@ describe('resolveMongodbSrv', () => {
4949
});
5050

5151
it('rejects non-mongodb schemes', async () => {
52-
assert.rejects(resolveMongodbSrv('http://somewhere.example.com', { dns }));
52+
await assert.rejects(resolveMongodbSrv('http://somewhere.example.com', { dns }));
5353
});
5454

5555
it('rejects mongodb+srv with port', async () => {
56-
assert.rejects(resolveMongodbSrv('mongodb+srv://somewhere.example.com:27017', { dns }));
56+
await assert.rejects(resolveMongodbSrv('mongodb+srv://somewhere.example.com:27017', { dns }));
5757
});
5858

5959
it('rejects when the SRV lookup rejects', async () => {
6060
srvError = new Error();
61-
assert.rejects(resolveMongodbSrv('mongodb+srv://server.example.com', { dns }));
61+
await assert.rejects(resolveMongodbSrv('mongodb+srv://server.example.com', { dns }));
6262
});
6363

6464
it('rejects when the SRV lookup returns no results', async () => {
6565
srvResult = [];
66-
assert.rejects(resolveMongodbSrv('mongodb+srv://server.example.com', { dns }));
66+
await assert.rejects(resolveMongodbSrv('mongodb+srv://server.example.com', { dns }));
6767
});
6868

6969
it('rejects when the SRV lookup returns foreign hostnames', async () => {
7070
srvResult = [{ name: 'server.example.org', port: 27017 }];
71-
assert.rejects(resolveMongodbSrv('mongodb+srv://server.example.com', { dns }));
71+
await assert.rejects(resolveMongodbSrv('mongodb+srv://server.example.com', { dns }));
7272
});
7373

7474
it('respects SRV-provided ports', async () => {
@@ -81,7 +81,7 @@ describe('resolveMongodbSrv', () => {
8181
it('rejects when the TXT lookup rejects with a fatal error', async () => {
8282
srvResult = [{ name: 'asdf.example.com', port: 27017 }];
8383
txtError = Object.assign(new Error(), { code: 'ENOENT' });
84-
assert.rejects(resolveMongodbSrv('mongodb+srv://server.example.com', { dns }));
84+
await assert.rejects(resolveMongodbSrv('mongodb+srv://server.example.com', { dns }));
8585
});
8686

8787
it('does not reject when the TXT lookup results in ENOTFOUND', async () => {
@@ -103,13 +103,13 @@ describe('resolveMongodbSrv', () => {
103103
it('rejects when the TXT lookup returns more than one result', async () => {
104104
srvResult = [{ name: 'asdf.example.com', port: 27017 }];
105105
txtResult = [['a'], ['b']];
106-
assert.rejects(resolveMongodbSrv('mongodb+srv://server.example.com', { dns }));
106+
await assert.rejects(resolveMongodbSrv('mongodb+srv://server.example.com', { dns }));
107107
});
108108

109109
it('rejects when the TXT lookup returns invalid connection string options', async () => {
110110
srvResult = [{ name: 'asdf.example.com', port: 27017 }];
111111
txtResult = [['a=b']];
112-
assert.rejects(resolveMongodbSrv('mongodb+srv://server.example.com', { dns }));
112+
await assert.rejects(resolveMongodbSrv('mongodb+srv://server.example.com', { dns }));
113113
});
114114

115115
it('accepts TXT lookup authSource', async () => {
@@ -123,7 +123,7 @@ describe('resolveMongodbSrv', () => {
123123
it('rejects empty TXT lookup authSource', async () => {
124124
srvResult = [{ name: 'asdf.example.com', port: 27017 }];
125125
txtResult = [['authSource=']];
126-
assert.rejects(resolveMongodbSrv('mongodb+srv://server.example.com', { dns }));
126+
await assert.rejects(resolveMongodbSrv('mongodb+srv://server.example.com', { dns }));
127127
});
128128

129129
it('prioritizes URL-provided over TXT lookup authSource', async () => {
@@ -145,7 +145,7 @@ describe('resolveMongodbSrv', () => {
145145
it('rejects empty TXT lookup replicaSet', async () => {
146146
srvResult = [{ name: 'asdf.example.com', port: 27017 }];
147147
txtResult = [['replicaSet=']];
148-
assert.rejects(resolveMongodbSrv('mongodb+srv://server.example.com', { dns }));
148+
await assert.rejects(resolveMongodbSrv('mongodb+srv://server.example.com', { dns }));
149149
});
150150

151151
it('prioritizes URL-provided over TXT lookup replicaSet', async () => {
@@ -174,13 +174,13 @@ describe('resolveMongodbSrv', () => {
174174
it('rejects empty TXT lookup loadBalanced', async () => {
175175
srvResult = [{ name: 'asdf.example.com', port: 27017 }];
176176
txtResult = [['loadBalanced=']];
177-
assert.rejects(resolveMongodbSrv('mongodb+srv://server.example.com', { dns }));
177+
await assert.rejects(resolveMongodbSrv('mongodb+srv://server.example.com', { dns }));
178178
});
179179

180180
it('rejects non true/false TXT lookup loadBalanced', async () => {
181181
srvResult = [{ name: 'asdf.example.com', port: 27017 }];
182182
txtResult = [['loadBalanced=bla']];
183-
assert.rejects(resolveMongodbSrv('mongodb+srv://server.example.com', { dns }));
183+
await assert.rejects(resolveMongodbSrv('mongodb+srv://server.example.com', { dns }));
184184
});
185185

186186
it('prioritizes URL-provided over TXT lookup loadBalanced', async () => {
@@ -232,6 +232,12 @@ describe('resolveMongodbSrv', () => {
232232
await assert.rejects(resolveMongodbSrv('mongodb+srv://example.com', { dns }));
233233
});
234234

235+
it('not strip first subdomain when parent domain has fewer than 3 part to prevent TLD-only matching', async () => {
236+
txtResult = [];
237+
srvResult = [{ name: 'asdf.malicious.com', port: 27017 }];
238+
await assert.rejects(resolveMongodbSrv('mongodb+srv://example.com', { dns }));
239+
});
240+
235241
it('allow trailing dot in SRV lookup', async () => {
236242
txtResult = [];
237243
srvResult = [

0 commit comments

Comments
 (0)