github.com/anth0d/nomad@v0.0.0-20221214183521-ae3a0a2cad06/ui/mirage/utils.js (about)

     1  import faker from 'nomad-ui/mirage/faker';
     2  
     3  export function provide(count, provider) {
     4    if (typeof count === 'function') {
     5      count = count();
     6    }
     7    return Array(count).fill(null).map(provider);
     8  }
     9  
    10  export function provider() {
    11    return () => provide(...arguments);
    12  }
    13  
    14  export function pickOne(list) {
    15    return list[faker.random.number(list.length - 1)];
    16  }
    17  
    18  export function arrToObj(prop, alias = '') {
    19    return (obj, element) => {
    20      const name = element[prop];
    21      delete element[prop];
    22  
    23      obj[name] = alias ? element[alias] : element;
    24      return obj;
    25    };
    26  }
    27  
    28  export const generateAcceptanceTestEvalMock = (id) => {
    29  
    30    return {
    31      CreateIndex: 20,
    32      CreateTime: 1647899150314738000,
    33      ID: id,
    34      JobID: 'example',
    35      JobModifyIndex: 10,
    36      ModifyIndex: 31,
    37      ModifyTime: 1647899318007569000,
    38      Namespace: 'default',
    39      NextEval: 'fd1cd898-d655-c7e4-17f6-a1a2e98b18ef',
    40      PreviousEval: 'd8a5c14f-120a-3d83-6305-90927356dd6c',
    41      Priority: 50,
    42      RelatedEvals: [
    43        {
    44          BlockedEval: '',
    45          CreateIndex: 31,
    46          CreateTime: 1647899318007563000,
    47          DeploymentID: '',
    48          ID: 'fd1cd898-d655-c7e4-17f6-a1a2e98b18ef',
    49          JobID: 'example',
    50          ModifyIndex: 44,
    51          ModifyTime: 1647899591412413000,
    52          Namespace: 'default',
    53          NextEval: 'cac7dfa0-b79b-ee55-c86a-0ca89dffb9e1',
    54          NodeID: '',
    55          PreviousEval: id,
    56          Priority: 50,
    57          Status: 'failed',
    58          StatusDescription: 'evaluation reached delivery limit (3)',
    59          TriggeredBy: 'failed-follow-up',
    60          Type: 'service',
    61          WaitUntil: null,
    62        },
    63        {
    64          BlockedEval: '',
    65          CreateIndex: 31,
    66          CreateTime: 1647899318007563000,
    67          DeploymentID: '',
    68          ID: 'fd1cd898-d655-c7e4-17f6-a1a2e98b18ef-deux',
    69          JobID: 'example',
    70          ModifyIndex: 44,
    71          ModifyTime: 1647899591412413000,
    72          Namespace: 'default',
    73          NextEval: 'cac7dfa0-b79b-ee55-c86a-0ca89dffb9e1',
    74          NodeID: '',
    75          PreviousEval: id,
    76          Priority: 50,
    77          Status: 'failed',
    78          StatusDescription: 'evaluation reached delivery limit (3)',
    79          TriggeredBy: 'failed-follow-up',
    80          Type: 'service',
    81          WaitUntil: null,
    82        },
    83        {
    84          BlockedEval: '',
    85          CreateIndex: 10,
    86          CreateTime: 1647899129298997000,
    87          DeploymentID: '',
    88          ID: 'd8a5c14f-120a-3d83-6305-90927356dd6c',
    89          JobID: 'example',
    90          ModifyIndex: 20,
    91          ModifyTime: 1647899150314745000,
    92          Namespace: 'default',
    93          NextEval: id,
    94          NodeID: '',
    95          PreviousEval: '',
    96          Priority: 50,
    97          Status: 'failed',
    98          StatusDescription: 'evaluation reached delivery limit (3)',
    99          TriggeredBy: 'job-register',
   100          Type: 'service',
   101          WaitUntil: null,
   102        },
   103        {
   104          BlockedEval: '',
   105          CreateIndex: 44,
   106          CreateTime: 1647899591412410000,
   107          DeploymentID: '',
   108          ID: 'cac7dfa0-b79b-ee55-c86a-0ca89dffb9e1',
   109          JobID: 'example',
   110          ModifyIndex: 53,
   111          ModifyTime: 1647899729480596000,
   112          Namespace: 'default',
   113          NextEval: 'e49bf53c-da6a-c869-8317-f2089682f503',
   114          NodeID: '',
   115          PreviousEval: 'fd1cd898-d655-c7e4-17f6-a1a2e98b18ef',
   116          Priority: 50,
   117          Status: 'failed',
   118          StatusDescription: 'evaluation reached delivery limit (3)',
   119          TriggeredBy: 'failed-follow-up',
   120          Type: 'service',
   121          WaitUntil: null,
   122        },
   123        {
   124          BlockedEval: '',
   125          CreateIndex: 53,
   126          CreateTime: 1647899729480592000,
   127          DeploymentID: '',
   128          ID: 'e49bf53c-da6a-c869-8317-f2089682f503',
   129          JobID: 'example',
   130          ModifyIndex: 64,
   131          ModifyTime: 1647899881302731000,
   132          Namespace: 'default',
   133          NextEval: 'a8d29cfc-517c-2e4c-9722-b47e84152c64',
   134          NodeID: '',
   135          PreviousEval: 'cac7dfa0-b79b-ee55-c86a-0ca89dffb9e1',
   136          Priority: 50,
   137          Status: 'failed',
   138          StatusDescription: 'evaluation reached delivery limit (3)',
   139          TriggeredBy: 'failed-follow-up',
   140          Type: 'service',
   141          WaitUntil: null,
   142        },
   143        {
   144          BlockedEval: '',
   145          CreateIndex: 64,
   146          CreateTime: 1647899881302723000,
   147          DeploymentID: '',
   148          ID: 'a8d29cfc-517c-2e4c-9722-b47e84152c64',
   149          JobID: 'example',
   150          ModifyIndex: 81,
   151          ModifyTime: 1647900212725381000,
   152          Namespace: 'default',
   153          NextEval: 'b37d06e4-4eb4-b29d-3b4a-b0c7bf2528ad',
   154          NodeID: '',
   155          PreviousEval: 'e49bf53c-da6a-c869-8317-f2089682f503',
   156          Priority: 50,
   157          Status: 'failed',
   158          StatusDescription: 'evaluation reached delivery limit (3)',
   159          TriggeredBy: 'failed-follow-up',
   160          Type: 'service',
   161          WaitUntil: null,
   162        },
   163        {
   164          BlockedEval: '',
   165          CreateIndex: 81,
   166          CreateTime: 1647900212725376000,
   167          DeploymentID: '',
   168          ID: 'b37d06e4-4eb4-b29d-3b4a-b0c7bf2528ad',
   169          JobID: 'example',
   170          ModifyIndex: 97,
   171          ModifyTime: 1647900516944239000,
   172          Namespace: 'default',
   173          NextEval: 'd7c50aa5-5bf1-5119-d7e7-0d0ae5381856',
   174          NodeID: '',
   175          PreviousEval: 'a8d29cfc-517c-2e4c-9722-b47e84152c64',
   176          Priority: 50,
   177          Status: 'failed',
   178          StatusDescription: 'evaluation reached delivery limit (3)',
   179          TriggeredBy: 'failed-follow-up',
   180          Type: 'service',
   181          WaitUntil: null,
   182        },
   183        {
   184          BlockedEval: '',
   185          CreateIndex: 97,
   186          CreateTime: 1647900516944236000,
   187          DeploymentID: '',
   188          ID: 'd7c50aa5-5bf1-5119-d7e7-0d0ae5381856',
   189          JobID: 'example',
   190          ModifyIndex: 114,
   191          ModifyTime: 1647900825385587000,
   192          Namespace: 'default',
   193          NextEval: 'ea2239aa-26d6-8874-8c56-e1600585772b',
   194          NodeID: '',
   195          PreviousEval: 'b37d06e4-4eb4-b29d-3b4a-b0c7bf2528ad',
   196          Priority: 50,
   197          Status: 'failed',
   198          StatusDescription: 'evaluation reached delivery limit (3)',
   199          TriggeredBy: 'failed-follow-up',
   200          Type: 'service',
   201          WaitUntil: null,
   202        },
   203        {
   204          BlockedEval: '',
   205          CreateIndex: 114,
   206          CreateTime: 1647900825385584000,
   207          DeploymentID: '',
   208          ID: 'ea2239aa-26d6-8874-8c56-e1600585772b',
   209          JobID: 'example',
   210          ModifyIndex: 128,
   211          ModifyTime: 1647900979511304000,
   212          Namespace: 'default',
   213          NextEval: '25a2dd19-8d22-d1dd-280a-79860c9b8bdb',
   214          NodeID: '',
   215          PreviousEval: 'd7c50aa5-5bf1-5119-d7e7-0d0ae5381856',
   216          Priority: 50,
   217          Status: 'failed',
   218          StatusDescription: 'evaluation reached delivery limit (3)',
   219          TriggeredBy: 'failed-follow-up',
   220          Type: 'service',
   221          WaitUntil: null,
   222        },
   223        {
   224          BlockedEval: '',
   225          CreateIndex: 128,
   226          CreateTime: 1647900979511301000,
   227          DeploymentID: '',
   228          ID: '25a2dd19-8d22-d1dd-280a-79860c9b8bdb',
   229          JobID: 'example',
   230          ModifyIndex: 136,
   231          ModifyTime: 1647901211369652000,
   232          Namespace: 'default',
   233          NextEval: '1fded690-20ad-6afa-3b89-59e319dfce18',
   234          NodeID: '',
   235          PreviousEval: 'ea2239aa-26d6-8874-8c56-e1600585772b',
   236          Priority: 50,
   237          Status: 'failed',
   238          StatusDescription: 'evaluation reached delivery limit (3)',
   239          TriggeredBy: 'failed-follow-up',
   240          Type: 'service',
   241          WaitUntil: null,
   242        },
   243        {
   244          BlockedEval: '',
   245          CreateIndex: 136,
   246          CreateTime: 1647901211369648000,
   247          DeploymentID: '',
   248          ID: '1fded690-20ad-6afa-3b89-59e319dfce18',
   249          JobID: 'example',
   250          ModifyIndex: 136,
   251          ModifyTime: 1647901211369648000,
   252          Namespace: 'default',
   253          NextEval: '',
   254          NodeID: '',
   255          PreviousEval: '25a2dd19-8d22-d1dd-280a-79860c9b8bdb',
   256          Priority: 50,
   257          Status: 'pending',
   258          StatusDescription: '',
   259          TriggeredBy: 'failed-follow-up',
   260          Type: 'service',
   261          WaitUntil: null,
   262        },
   263      ],
   264      Status: 'failed',
   265      StatusDescription: 'evaluation reached delivery limit (3)',
   266      TriggeredBy: 'failed-follow-up',
   267      Type: 'service',
   268      Wait: 20000000000,
   269    };
   270  };