HEX
Server: nginx/1.24.0
System: Linux nowruzgan 6.8.0-57-generic #59-Ubuntu SMP PREEMPT_DYNAMIC Sat Mar 15 17:40:59 UTC 2025 x86_64
User: babak (1000)
PHP: 8.3.6
Disabled: NONE
Upload Files
File: /var/dev/nowruzgan/rest/node_modules/sort-route-addresses/test/rank.test.js
var assert = require('assert');
var _ = require('@sailshq/lodash');

var sortRouteAddresses = require('../');

describe('Given an unordered list of Sails/Express-style route addresses',
function() {

  it('the addresses should be sorted by their inclusivity',
function() {

    var addresses = [
      '/*',
      'GET /*',
      '/*/baz',
      '/*/baz/*',
      '/*/bar/baz',
      '/:foo/*',
      '/:foo/:bar/*',
      'r|^/foo/\\d+$|',
      '/:foo/:bar/:baz',
      '/:foo/:bar/baz',
      '/:foo/:bar',
      '/:foo/bar/:baz',
      '/:foo/bar/baz',
      '/:foo/bar',
      '/:foo',
      '/foo/*',
      '/foo/*/baz',
      '/foo/:bar/:baz',
      '/foo/:bar/baz',
      '/foo/:bar',
      '/foo/bar/*',
      'GET /foo/bar/*',
      '/foo/bar/:baz',
      'GET /foo/bar/:baz',
      '/foo/bar/baz',
      '/foo/bar',
      '/foo',
      'GET /foo'
    ];

    var expected = ['GET /foo',
      '/foo',
      '/foo/bar',
      '/foo/bar/baz',
      'GET /foo/bar/:baz',
      '/foo/bar/:baz',
      'GET /foo/bar/*',
      '/foo/bar/*',
      '/foo/:bar',
      '/foo/:bar/baz',
      '/foo/:bar/:baz',
      '/foo/*/baz',
      '/foo/*',
      '/:foo/bar',
      '/:foo/bar/baz',
      '/:foo/bar/:baz',
      '/:foo/:bar/baz',
      '/*/bar/baz',
      '/*/baz/*',
      '/*/baz',
      '/:foo',
      '/:foo/:bar',
      '/:foo/:bar/:baz',
      '/:foo/:bar/*',
      'r|^/foo/\\d+$|',
      '/:foo/*',
      'GET /*',
      '/*'
    ];

    var sortedAddresses = sortRouteAddresses(addresses);

    assert(_.isEqual(sortedAddresses, expected), 'Got unexpected address order: ' + JSON.stringify(sortedAddresses));

  });

});