Files
raven-test/e2e/tests/regression/0-setup/000-generate-test-db.cy.js
2026-02-16 14:39:46 -08:00

155 lines
4.6 KiB
JavaScript

// Basic smoke test, visit every form to ensure they load
describe("SMOKE SETUP", () => {
before(() => {
cy.request({
url: `${Cypress.env("apiBaseUrl")}auth`,
method: "POST",
body: {
login: Cypress.env("admin").login,
password: Cypress.env("admin").password
}
})
.its("body")
.then((res) => {
cy.request({
method: "GET",
url: `${Cypress.env("apiBaseUrl")}server-info`,
auth: { bearer: res.data.token }
}).then((resp) => {
const raw = resp.body.data.serverVersion
const match = raw.match(/(\d+\.\d+\.\d+)/)
if (!match) {
cy.task('setAbortFlag').then(() => {
throw new Error(`Could not parse version from: "${raw}"`)
})
return // prevent further execution
}
const version = match[1]
const expected = Cypress.env("expectedServerVersion")
if (version !== expected) {
cy.task('setAbortFlag').then(() => {
throw new Error(`❌ Version mismatch: server is ${version}, expected ${expected}. ABORTING ALL TESTS.`)
})
return // prevent further execution
}
cy.log(`✓ Server version confirmed: ${version}`)
})
})
})
it("Generates test data without issue", () => {
cy.request({
url: `${Cypress.env("apiBaseUrl")}auth`,
method: "POST",
body: {
login: Cypress.env("admin").login,
password: Cypress.env("admin").password
}
})
.its("body")
.then(res => {
cy.request({
method: "POST",
url: `${Cypress.env("apiBaseUrl")}license/permanently-erase-all-data`,
auth: {
bearer: res.data.token
},
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify("I understand")
}).then(() => {
cy.request({
method: "POST",
url: `${Cypress.env("apiBaseUrl")}trial/seed`,
auth: {
bearer: res.data.token
}, ///small/-7/true
body: {
seedLevel: "small",
timeZoneOffset: -7,
e2e: true
}
})
.its("body")
.then(resjob => {
cy.log(`resjob is: ${JSON.stringify(resjob)}`);
// expect(resjob.body).to.have.property('jobId');
confirmJobDone(resjob.jobId, res.data.token);
});
});
});
//-----------------------------------------------------
});
});
function confirmJobDone(jobId, authToken) {
cy.request({
method: "GET",
url: `${Cypress.env("apiBaseUrl")}job-operations/status/${jobId}`,
auth: {
bearer: authToken
}
}).then(resp => {
//3 means job done
if (resp.body.data == 3) return;
// else recurse
cy.wait(1000);
confirmJobDone(jobId, authToken);
});
}
//===============================================
// describe("SMOKE SETUP", () => {
// it("Generates test data without issue", () => {
// cy.request({
// url: `${Cypress.env("apiBaseUrl")}auth`,
// method: "POST",
// body: {
// login: Cypress.env("admin").login,
// password: Cypress.env("admin").password
// }
// })
// .its("body")
// .then((res) => {
// cy.request({
// method: "POST",
// url: `${Cypress.env("apiBaseUrl")}trial/seed`,
// auth: {
// bearer: res.data.token
// }, ///small/-7/true
// body: {
// seedLevel: "small",
// timeZoneOffset: -7,
// e2e: true
// }
// })
// .its("body")
// .then((resjob) => {
// cy.log(`resjob is: ${JSON.stringify(resjob)}`);
// // expect(resjob.body).to.have.property('jobId');
// confirmJobDone(resjob.jobId, res.data.token);
// });
// });
// //-----------------------------------------------------
// });
// });
// function confirmJobDone(jobId, authToken) {
// cy.request({
// method: "GET",
// url: `${Cypress.env("apiBaseUrl")}job-operations/status/${jobId}`,
// auth: {
// bearer: authToken
// }
// }).then((resp) => {
// //3 means job done
// if (resp.body.data == 3) return;
// // else recurse
// cy.wait(1000);
// confirmJobDone(jobId, authToken);
// });
// }