stable-sort-domain.test.ts 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. import { describe, it } from 'mocha';
  2. import { expect } from 'expect';
  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. it('samsung test case', () => {
  71. expect(sortDomains([
  72. '.notice.samsungcloudsolution.com',
  73. 'samsungqbe.com',
  74. 'samsungcloudsolution.com'
  75. ])).toStrictEqual([
  76. 'samsungqbe.com',
  77. 'samsungcloudsolution.com',
  78. '.notice.samsungcloudsolution.com'
  79. ]);
  80. expect(
  81. sortDomains([
  82. '.notice.samsungcloudsolution.com',
  83. '.vdterms.samsungcloudsolution.com',
  84. '.gamespromotion.samsungcloudsolution.com',
  85. '.samsunggiveaways.com',
  86. '.gld.samsungosp.com',
  87. 'samsungqbe.com',
  88. 'samsungcloudsolution.com',
  89. '.sas.samsungcloudsolution.com',
  90. '.prov.samsungcloudsolution.com',
  91. '.musicid.samsungcloudsolution.com',
  92. '.amauthprd.samsungcloudsolution.com',
  93. '.noticecdn.samsungcloudsolution.com',
  94. '.abtauthprd.samsungcloudsolution.com',
  95. '.noticefile.samsungcloudsolution.com',
  96. '.prderrordumphsm.samsungcloudsolution.com',
  97. 'samsungcloudsolution.net',
  98. '.cdn.samsungcloudsolution.net',
  99. '.lcprd1.samsungcloudsolution.net',
  100. '.lcprd2.samsungcloudsolution.net',
  101. '.samsungelectronics.com',
  102. '.analytics-api.samsunghealthcn.com',
  103. '.tracking.samsungknox.com',
  104. '.analytics.samsungknox.com',
  105. '.metrics.samsunglife.com',
  106. '.smetrics.samsunglife.com',
  107. '.nmetrics.samsungmobile.com',
  108. '.rwww.samsungotn.net',
  109. '.samsungpoland.com.pl'
  110. ])
  111. ).toStrictEqual([
  112. '.gld.samsungosp.com',
  113. '.rwww.samsungotn.net',
  114. 'samsungqbe.com',
  115. '.tracking.samsungknox.com',
  116. '.analytics.samsungknox.com',
  117. '.metrics.samsunglife.com',
  118. '.smetrics.samsunglife.com',
  119. '.nmetrics.samsungmobile.com',
  120. '.analytics-api.samsunghealthcn.com',
  121. '.samsunggiveaways.com',
  122. '.samsungpoland.com.pl',
  123. '.samsungelectronics.com',
  124. 'samsungcloudsolution.com',
  125. '.sas.samsungcloudsolution.com',
  126. '.prov.samsungcloudsolution.com',
  127. '.notice.samsungcloudsolution.com',
  128. '.musicid.samsungcloudsolution.com',
  129. '.vdterms.samsungcloudsolution.com',
  130. '.amauthprd.samsungcloudsolution.com',
  131. '.noticecdn.samsungcloudsolution.com',
  132. '.abtauthprd.samsungcloudsolution.com',
  133. '.noticefile.samsungcloudsolution.com',
  134. '.gamespromotion.samsungcloudsolution.com',
  135. '.prderrordumphsm.samsungcloudsolution.com',
  136. 'samsungcloudsolution.net',
  137. '.cdn.samsungcloudsolution.net',
  138. '.lcprd1.samsungcloudsolution.net',
  139. '.lcprd2.samsungcloudsolution.net'
  140. ]);
  141. });
  142. });