Surge_by_SukkaW/Build/lib/stable-sort-domain.test.ts
2024-05-26 03:27:43 +08:00

153 lines
4.9 KiB
TypeScript

// eslint-disable-next-line import-x/no-unresolved -- bun
import { describe, expect, it } from 'bun:test';
import { sortDomains } from './stable-sort-domain';
describe('sortDomains', () => {
it('basic', () => {
expect(sortDomains([
'.s3-website.ap-northeast-3.amazonaws.com',
'.s3.dualstack.ap-south-1.amazonaws.com',
'.s3-website.af-south-1.amazonaws.com'
])).toStrictEqual([
'.s3-website.af-south-1.amazonaws.com',
'.s3.dualstack.ap-south-1.amazonaws.com',
'.s3-website.ap-northeast-3.amazonaws.com'
]);
expect(sortDomains([
'.s3.dualstack.ap-south-1.amazonaws.com',
'.s3-website.ap-northeast-3.amazonaws.com',
'.s3-website.af-south-1.amazonaws.com'
])).toStrictEqual([
'.s3-website.af-south-1.amazonaws.com',
'.s3.dualstack.ap-south-1.amazonaws.com',
'.s3-website.ap-northeast-3.amazonaws.com'
]);
expect(sortDomains([
'.s3-website-us-west-2.amazonaws.com',
'.s3-1.amazonaws.com'
])).toStrictEqual([
'.s3-1.amazonaws.com',
'.s3-website-us-west-2.amazonaws.com'
]);
expect(sortDomains([
'.s3-1.amazonaws.com',
'.s3-website-us-west-2.amazonaws.com'
])).toStrictEqual([
'.s3-1.amazonaws.com',
'.s3-website-us-west-2.amazonaws.com'
]);
expect(
sortDomains([
'.s3-deprecated.us-west-2.amazonaws.com',
'.s3-accesspoint.dualstack.us-west-2.amazonaws.com',
'.s3.dualstack.us-west-2.amazonaws.com'
])
).toStrictEqual([
'.s3.dualstack.us-west-2.amazonaws.com',
'.s3-deprecated.us-west-2.amazonaws.com',
'.s3-accesspoint.dualstack.us-west-2.amazonaws.com'
]);
expect(
sortDomains([
'.s3-deprecated.us-west-2.amazonaws.com',
'.s3-accesspoint.dualstack.us-west-2.amazonaws.com',
'.s3.dualstack.us-west-2.amazonaws.com'
])
).toStrictEqual([
'.s3.dualstack.us-west-2.amazonaws.com',
'.s3-deprecated.us-west-2.amazonaws.com',
'.s3-accesspoint.dualstack.us-west-2.amazonaws.com'
]);
expect(
sortDomains([
'.ec2-25-58-215-234.us-east-2.compute.amazonaws.com',
'.ec2-13-58-215-234.us-east-2.compute.amazonaws.com'
])
).toStrictEqual([
'.ec2-13-58-215-234.us-east-2.compute.amazonaws.com',
'.ec2-25-58-215-234.us-east-2.compute.amazonaws.com'
]);
});
it('samsung test case', () => {
expect(sortDomains([
'.notice.samsungcloudsolution.com',
'samsungqbe.com',
'samsungcloudsolution.com'
])).toStrictEqual([
'samsungqbe.com',
'samsungcloudsolution.com',
'.notice.samsungcloudsolution.com'
]);
expect(
sortDomains([
'.notice.samsungcloudsolution.com',
'.vdterms.samsungcloudsolution.com',
'.gamespromotion.samsungcloudsolution.com',
'.samsunggiveaways.com',
'.gld.samsungosp.com',
'samsungqbe.com',
'samsungcloudsolution.com',
'.sas.samsungcloudsolution.com',
'.prov.samsungcloudsolution.com',
'.musicid.samsungcloudsolution.com',
'.amauthprd.samsungcloudsolution.com',
'.noticecdn.samsungcloudsolution.com',
'.abtauthprd.samsungcloudsolution.com',
'.noticefile.samsungcloudsolution.com',
'.prderrordumphsm.samsungcloudsolution.com',
'samsungcloudsolution.net',
'.cdn.samsungcloudsolution.net',
'.lcprd1.samsungcloudsolution.net',
'.lcprd2.samsungcloudsolution.net',
'.samsungelectronics.com',
'.analytics-api.samsunghealthcn.com',
'.tracking.samsungknox.com',
'.analytics.samsungknox.com',
'.metrics.samsunglife.com',
'.smetrics.samsunglife.com',
'.nmetrics.samsungmobile.com',
'.rwww.samsungotn.net',
'.samsungpoland.com.pl'
])
).toStrictEqual([
'.gld.samsungosp.com',
'.rwww.samsungotn.net',
'samsungqbe.com',
'.tracking.samsungknox.com',
'.analytics.samsungknox.com',
'.metrics.samsunglife.com',
'.smetrics.samsunglife.com',
'.nmetrics.samsungmobile.com',
'.analytics-api.samsunghealthcn.com',
'.samsunggiveaways.com',
'.samsungpoland.com.pl',
'.samsungelectronics.com',
'samsungcloudsolution.com',
'.sas.samsungcloudsolution.com',
'.prov.samsungcloudsolution.com',
'.notice.samsungcloudsolution.com',
'.musicid.samsungcloudsolution.com',
'.vdterms.samsungcloudsolution.com',
'.amauthprd.samsungcloudsolution.com',
'.noticecdn.samsungcloudsolution.com',
'.abtauthprd.samsungcloudsolution.com',
'.noticefile.samsungcloudsolution.com',
'.gamespromotion.samsungcloudsolution.com',
'.prderrordumphsm.samsungcloudsolution.com',
'samsungcloudsolution.net',
'.cdn.samsungcloudsolution.net',
'.lcprd1.samsungcloudsolution.net',
'.lcprd2.samsungcloudsolution.net'
]);
});
});