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 };