Refactor VPN proxy client implementation
This commit is contained in:
@@ -4,7 +4,7 @@ import test from 'node:test';
|
||||
import {
|
||||
parseSubscriptionBody,
|
||||
selectRefreshedServer,
|
||||
} from '../../src/server/subscription.js';
|
||||
} from '../../dist/server/subscription.js';
|
||||
|
||||
const parse = (outbounds) => parseSubscriptionBody(JSON.stringify({ outbounds }));
|
||||
const outbound = (tag, server, server_port = 443) => ({
|
||||
@@ -76,3 +76,13 @@ test('provider placeholders never become selectable servers', () => {
|
||||
assert.deepEqual(parsed.servers.map((server) => server.label), ['Amsterdam']);
|
||||
assert.equal(parsed.config.outbounds.length, 1);
|
||||
});
|
||||
|
||||
test('subscription parser rejects JSON primitives and arrays', () => {
|
||||
for (const value of [null, [], 42, true, 'provider rejected']) {
|
||||
assert.throws(
|
||||
() => parseSubscriptionBody(JSON.stringify(value)),
|
||||
(error) => error.code === 'SUBSCRIPTION_INVALID',
|
||||
`expected ${JSON.stringify(value)} to be rejected`,
|
||||
);
|
||||
}
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user