stable-sort-domain.test.ts 2.7 KB

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