stable-sort-domain.test.ts 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. // eslint-disable-next-line import-x/no-unresolved -- bun
  2. import { describe, expect, it } from 'bun:test';
  3. import { sortDomains } from './stable-sort-domain';
  4. describe('sortDomains', () => {
  5. it('basic', () => {
  6. expect(sortDomains([
  7. '.s3-website.ap-northeast-3.amazonaws.com',
  8. '.s3.dualstack.ap-south-1.amazonaws.com',
  9. '.s3-website.af-south-1.amazonaws.com'
  10. ])).toStrictEqual([
  11. '.s3-website.af-south-1.amazonaws.com',
  12. '.s3.dualstack.ap-south-1.amazonaws.com',
  13. '.s3-website.ap-northeast-3.amazonaws.com'
  14. ]);
  15. expect(sortDomains([
  16. '.s3.dualstack.ap-south-1.amazonaws.com',
  17. '.s3-website.ap-northeast-3.amazonaws.com',
  18. '.s3-website.af-south-1.amazonaws.com'
  19. ])).toStrictEqual([
  20. '.s3-website.af-south-1.amazonaws.com',
  21. '.s3.dualstack.ap-south-1.amazonaws.com',
  22. '.s3-website.ap-northeast-3.amazonaws.com'
  23. ]);
  24. expect(sortDomains([
  25. '.s3-website-us-west-2.amazonaws.com',
  26. '.s3-1.amazonaws.com'
  27. ])).toStrictEqual([
  28. '.s3-1.amazonaws.com',
  29. '.s3-website-us-west-2.amazonaws.com'
  30. ]);
  31. expect(sortDomains([
  32. '.s3-1.amazonaws.com',
  33. '.s3-website-us-west-2.amazonaws.com'
  34. ])).toStrictEqual([
  35. '.s3-1.amazonaws.com',
  36. '.s3-website-us-west-2.amazonaws.com'
  37. ]);
  38. expect(
  39. sortDomains([
  40. '.s3-deprecated.us-west-2.amazonaws.com',
  41. '.s3-accesspoint.dualstack.us-west-2.amazonaws.com',
  42. '.s3.dualstack.us-west-2.amazonaws.com'
  43. ])
  44. ).toStrictEqual([
  45. '.s3.dualstack.us-west-2.amazonaws.com',
  46. '.s3-deprecated.us-west-2.amazonaws.com',
  47. '.s3-accesspoint.dualstack.us-west-2.amazonaws.com'
  48. ]);
  49. expect(
  50. sortDomains([
  51. '.s3-deprecated.us-west-2.amazonaws.com',
  52. '.s3-accesspoint.dualstack.us-west-2.amazonaws.com',
  53. '.s3.dualstack.us-west-2.amazonaws.com'
  54. ])
  55. ).toStrictEqual([
  56. '.s3.dualstack.us-west-2.amazonaws.com',
  57. '.s3-deprecated.us-west-2.amazonaws.com',
  58. '.s3-accesspoint.dualstack.us-west-2.amazonaws.com'
  59. ]);
  60. expect(
  61. sortDomains([
  62. '.ec2-25-58-215-234.us-east-2.compute.amazonaws.com',
  63. '.ec2-13-58-215-234.us-east-2.compute.amazonaws.com'
  64. ])
  65. ).toStrictEqual([
  66. '.ec2-13-58-215-234.us-east-2.compute.amazonaws.com',
  67. '.ec2-25-58-215-234.us-east-2.compute.amazonaws.com'
  68. ]);
  69. });
  70. });