|
@@ -1,51 +1,92 @@
|
|
|
// eslint-disable-next-line import-x/no-unresolved -- bun
|
|
// eslint-disable-next-line import-x/no-unresolved -- bun
|
|
|
import { describe, expect, it } from 'bun:test';
|
|
import { describe, expect, it } from 'bun:test';
|
|
|
|
|
|
|
|
-import { sortDomains } from './stable-sort-domain';
|
|
|
|
|
-import { getGorhillPublicSuffixPromise } from './get-gorhill-publicsuffix';
|
|
|
|
|
|
|
+import { compare, sortDomains } from './stable-sort-domain';
|
|
|
|
|
|
|
|
-describe('sortDomains', () => {
|
|
|
|
|
- it('basic', async () => {
|
|
|
|
|
- const gorhill = await getGorhillPublicSuffixPromise();
|
|
|
|
|
|
|
+describe('compare', () => {
|
|
|
|
|
+ it('basic', () => {
|
|
|
|
|
+ expect(
|
|
|
|
|
+ compare('.s3-website.ap-northeast-3.amazonaws.com', '.s3.dualstack.ap-south-1.amazonaws.com')
|
|
|
|
|
+ ).toBe(1);
|
|
|
|
|
+ });
|
|
|
|
|
|
|
|
|
|
+ it('basic', () => {
|
|
|
expect(
|
|
expect(
|
|
|
- sortDomains([
|
|
|
|
|
- '.s3-website.ap-northeast-3.amazonaws.com',
|
|
|
|
|
- '.s3.dualstack.ap-south-1.amazonaws.com',
|
|
|
|
|
- '.s3-website.af-south-1.amazonaws.com'
|
|
|
|
|
- ], gorhill)
|
|
|
|
|
- ).toStrictEqual(
|
|
|
|
|
- sortDomains([
|
|
|
|
|
- '.s3.dualstack.ap-south-1.amazonaws.com',
|
|
|
|
|
- '.s3-website.ap-northeast-3.amazonaws.com',
|
|
|
|
|
- '.s3-website.af-south-1.amazonaws.com'
|
|
|
|
|
- ], gorhill)
|
|
|
|
|
- );
|
|
|
|
|
|
|
+ compare('.s3-website.ap-northeast-3.amazonaws.com', '.s3.dualstack.ap-south-1.amazonaws.com')
|
|
|
|
|
+ ).toBe(1);
|
|
|
|
|
+ });
|
|
|
|
|
+});
|
|
|
|
|
+
|
|
|
|
|
+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(
|
|
expect(
|
|
|
sortDomains([
|
|
sortDomains([
|
|
|
- '.s3-website-us-west-2.amazonaws.com',
|
|
|
|
|
- '.s3-1.amazonaws.com'
|
|
|
|
|
- ], gorhill)
|
|
|
|
|
- ).toStrictEqual(
|
|
|
|
|
- sortDomains([
|
|
|
|
|
- '.s3-1.amazonaws.com',
|
|
|
|
|
- '.s3-website-us-west-2.amazonaws.com'
|
|
|
|
|
- ], gorhill)
|
|
|
|
|
- );
|
|
|
|
|
|
|
+ '.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(
|
|
expect(
|
|
|
sortDomains([
|
|
sortDomains([
|
|
|
'.s3-deprecated.us-west-2.amazonaws.com',
|
|
'.s3-deprecated.us-west-2.amazonaws.com',
|
|
|
'.s3-accesspoint.dualstack.us-west-2.amazonaws.com',
|
|
'.s3-accesspoint.dualstack.us-west-2.amazonaws.com',
|
|
|
'.s3.dualstack.us-west-2.amazonaws.com'
|
|
'.s3.dualstack.us-west-2.amazonaws.com'
|
|
|
- ], gorhill)
|
|
|
|
|
- ).toStrictEqual(
|
|
|
|
|
|
|
+ ])
|
|
|
|
|
+ ).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([
|
|
sortDomains([
|
|
|
- '.s3-accesspoint.dualstack.us-west-2.amazonaws.com',
|
|
|
|
|
- '.s3.dualstack.us-west-2.amazonaws.com',
|
|
|
|
|
- '.s3-deprecated.us-west-2.amazonaws.com'
|
|
|
|
|
- ], gorhill)
|
|
|
|
|
- );
|
|
|
|
|
|
|
+ '.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'
|
|
|
|
|
+ ]);
|
|
|
});
|
|
});
|
|
|
});
|
|
});
|