Files
harbor-net/test/server/subscription.test.js
Dmitriy Petrov fa3b455fab
All checks were successful
Build and Deploy Gateway / build-and-push (push) Successful in 14s
Build and Deploy Gateway / deploy (push) Successful in 1s
Refine VPN client instructions and subscription refresh flow
2026-07-11 12:34:14 +03:00

32 lines
1.0 KiB
JavaScript

import assert from 'node:assert/strict';
import test from 'node:test';
import {
parseSubscriptionBody,
selectRefreshedServer,
} from '../../src/server/subscription.js';
test('subscription server tags are trimmed for selection', () => {
const { servers } = parseSubscriptionBody(JSON.stringify({
outbounds: [{ type: 'vless', tag: 'de-frankfurt ', server: 'de.example', server_port: 443 }],
}));
assert.equal(servers[0].tag, 'de-frankfurt');
});
test('refreshed subscription keeps the selected server when its tag still exists', () => {
const servers = [{ tag: 'de' }, { tag: 'nl' }];
assert.equal(selectRefreshedServer('nl', servers), 'nl');
});
test('refreshed subscription selects the first server when the old tag disappeared', () => {
const servers = [{ tag: 'de' }, { tag: 'nl' }];
assert.equal(selectRefreshedServer('old-name', servers), 'de');
});
test('refreshed subscription does not select a server before the first user choice', () => {
assert.equal(selectRefreshedServer('', [{ tag: 'de' }]), '');
});