155 lines
4.6 KiB
JavaScript
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);
|
|
// });
|
|
// }
|