diff --git a/e2e/codecept.conf.ts b/e2e/codecept.conf.ts index 2d42bf631..da19b4cbf 100644 --- a/e2e/codecept.conf.ts +++ b/e2e/codecept.conf.ts @@ -48,6 +48,7 @@ exports.config = { osVersion: "11", }, }, + ExpectHelper: {}, }, multiple: { diff --git a/e2e/steps.d.ts b/e2e/steps.d.ts index 7865add22..46fb9e3a7 100644 --- a/e2e/steps.d.ts +++ b/e2e/steps.d.ts @@ -4,7 +4,7 @@ type IndexPage = typeof import('./utils/IndexPage'); declare namespace CodeceptJS { interface SupportObject { I: I, current: any, util: util, IndexPage: IndexPage } - interface Methods extends WebDriver {} + interface Methods extends WebDriver, ExpectHelper {} interface I extends WithTranslation {} namespace Translation { interface Actions {} diff --git a/e2e/tests/pages/user/project/version/NewVersionPage.ts b/e2e/tests/pages/user/project/version/NewVersionPage.ts index 77562915d..4027ca6e0 100644 --- a/e2e/tests/pages/user/project/version/NewVersionPage.ts +++ b/e2e/tests/pages/user/project/version/NewVersionPage.ts @@ -2,7 +2,10 @@ Feature("New Version Page"); Scenario("Test New Version", async ({ I, util }) => { await util.login(); - util.openHangarPage("/e2e_user/e2e_test/versions/new"); + + const projectName = "e2e_test-" + util.randomNumber(); + await util.createProject(projectName, process.env.E2E_USER_ID); + util.openHangarPage("/e2e_user/" + projectName + "/versions/new"); const name = "1." + util.randomNumber() + "." + util.randomNumber(); @@ -79,6 +82,7 @@ Scenario("Test New Version", async ({ I, util }) => { I.seeElement(locate("span").withText("1.18.2, 1.19.4")); await I.seeElement(locate(".tags").withText("e2etest")); - await util.deleteVersion("e2e_test", name); - await util.deleteChannel("e2e_test", "e2etest"); + await util.deleteVersion(projectName, name); + await util.deleteChannel(projectName, "e2etest"); + await util.deleteProject(projectName); }); diff --git a/e2e/utils/util.ts b/e2e/utils/util.ts index 1f1c58213..56aac5eaa 100644 --- a/e2e/utils/util.ts +++ b/e2e/utils/util.ts @@ -74,7 +74,7 @@ module.exports = new (class { if (result.status != 204) { console.log(await result.text()); } - expect(result.status, "project deletion to return 200").to.equal(204); + await I.expectEqual(result.status, 204, "project deletion to return 204"); } public async deleteOrg(name: string) { @@ -86,7 +86,7 @@ module.exports = new (class { if (result.status != 200) { console.log(await result.text()); } - expect(result.status, "org deletion to return 200").to.equal(200); + await I.expectEqual(result.status, 200, "org deletion to return 200"); } public async deleteVersion(name: string, project: string) { @@ -98,7 +98,7 @@ module.exports = new (class { if (result.status != 200) { console.log(await result.text()); } - expect(result.status, "org deletion to return 200").to.equal(200); + await I.expectEqual(result.status, 200, "version deletion to return 200"); } public async deleteChannel(project: string, channel: string) { @@ -109,6 +109,25 @@ module.exports = new (class { if (result.status != 200) { console.log(await result.text()); } - expect(result.status, "org deletion to return 200").to.equal(200); + await I.expectEqual(result.status, 200, "channel deletion to return 200"); + } + + public async createProject(project: string, owner_id: number) { + const result = await fetch(this.url + "/api/internal/projects/create", { + method: "POST", + headers: { Authorization: "Bearer " + (await this.getJwt()), "Content-Type": "application/json" }, + body: JSON.stringify({ + category: "admin_tools", + settings: { license: { type: "Unspecified" }, donation: {}, keywords: [], links: [], tags: [] }, + ownerId: owner_id, + name: project, + description: "E2E Test Project", + pageContent: "# " + project + " \nWelcome to your new project!", + }), + }); + if (result.status != 200) { + console.log(await result.text()); + } + await I.expectEqual(result.status, 200, "project creation to return 200"); } })();