()
| 150 | // --- Route stack validation tests --- |
| 151 | |
| 152 | function testRouteStackOrdering() { |
| 153 | console.log("Running route stack ordering tests..."); |
| 154 | |
| 155 | const createTargetStack = [ |
| 156 | "verifyResourceAccess", |
| 157 | "verifySiteAccess", |
| 158 | "verifyLimits", |
| 159 | "verifyUserHasAction", |
| 160 | "logActionAudit", |
| 161 | "createTarget" |
| 162 | ]; |
| 163 | |
| 164 | const updateTargetStack = [ |
| 165 | "verifyTargetAccess", |
| 166 | "verifySiteAccess", |
| 167 | "verifyLimits", |
| 168 | "verifyUserHasAction", |
| 169 | "logActionAudit", |
| 170 | "updateTarget" |
| 171 | ]; |
| 172 | |
| 173 | // Verify verifySiteAccess comes after resource/target access middleware |
| 174 | { |
| 175 | const siteAccessIndex = createTargetStack.indexOf("verifySiteAccess"); |
| 176 | const resourceAccessIndex = createTargetStack.indexOf( |
| 177 | "verifyResourceAccess" |
| 178 | ); |
| 179 | assertEquals( |
| 180 | siteAccessIndex > resourceAccessIndex, |
| 181 | true, |
| 182 | "verifySiteAccess must come after verifyResourceAccess in create target stack" |
| 183 | ); |
| 184 | } |
| 185 | |
| 186 | { |
| 187 | const siteAccessIndex = updateTargetStack.indexOf("verifySiteAccess"); |
| 188 | const targetAccessIndex = |
| 189 | updateTargetStack.indexOf("verifyTargetAccess"); |
| 190 | assertEquals( |
| 191 | siteAccessIndex > targetAccessIndex, |
| 192 | true, |
| 193 | "verifySiteAccess must come after verifyTargetAccess in update target stack" |
| 194 | ); |
| 195 | } |
| 196 | |
| 197 | // Verify verifySiteAccess comes before the handler |
| 198 | { |
| 199 | const siteAccessIndex = createTargetStack.indexOf("verifySiteAccess"); |
| 200 | const handlerIndex = createTargetStack.indexOf("createTarget"); |
| 201 | assertEquals( |
| 202 | siteAccessIndex < handlerIndex, |
| 203 | true, |
| 204 | "verifySiteAccess must come before createTarget handler" |
| 205 | ); |
| 206 | } |
| 207 | |
| 208 | { |
| 209 | const siteAccessIndex = updateTargetStack.indexOf("verifySiteAccess"); |
no test coverage detected