diff --git a/qa-core/src/config/internal-api/TestConfiguration/auth.ts b/qa-core/src/config/internal-api/TestConfiguration/auth.ts index d72502b417..3fe57c50be 100644 --- a/qa-core/src/config/internal-api/TestConfiguration/auth.ts +++ b/qa-core/src/config/internal-api/TestConfiguration/auth.ts @@ -27,6 +27,7 @@ export default class AuthApi { password: password, }, }) + expect(response).toHaveStatusCode(200) const cookie = response.headers.get("set-cookie") this.api.cookie = cookie as any return [response, cookie] diff --git a/qa-core/src/config/internal-api/TestConfiguration/userManagement.ts b/qa-core/src/config/internal-api/TestConfiguration/userManagement.ts index e602c37c8a..b10eafa217 100644 --- a/qa-core/src/config/internal-api/TestConfiguration/userManagement.ts +++ b/qa-core/src/config/internal-api/TestConfiguration/userManagement.ts @@ -115,4 +115,13 @@ export default class UserManagementApi { expect(response).toHaveStatusCode(200) return [response, json] } + + async changeSelfPassword(body: Partial): Promise<[Response, User]> { + const response = await this.api.post(`/global/self`, { body }) + const json = await response.json() + expect(response).toHaveStatusCode(200) + expect(json._id).toEqual(body._id) + expect(json._rev).not.toEqual(body._rev) + return [response, json] + } } \ No newline at end of file diff --git a/qa-core/src/tests/internal-api/userManagement/appSpecificRoles.spec.ts b/qa-core/src/tests/internal-api/userManagement/appSpecificRoles.spec.ts index cfdd75f82e..f375cf3158 100644 --- a/qa-core/src/tests/internal-api/userManagement/appSpecificRoles.spec.ts +++ b/qa-core/src/tests/internal-api/userManagement/appSpecificRoles.spec.ts @@ -226,8 +226,26 @@ describe("Internal API - App Specific Roles & Permissions", () => { expect(changedUserInfoJson.roles[app.appId]).toEqual("BASIC") const [basicScreenResponse, basicScreenJson] = await config.screen.create(generateScreen("BASIC")) + const [powerScreenResponse, powerScreenJson] = await config.screen.create(generateScreen("POWER")) + const [adminScreenResponse, adminScreenJson] = await config.screen.create(generateScreen("ADMIN")) + await config.applications.publish(app.url) + const [firstappPackageResponse, firstappPackageJson] = await config.applications.getAppPackage(app.appId) + expect(firstappPackageJson.screens).toBeDefined() + expect(firstappPackageJson.screens.length).toEqual(3) + await config.login(appUser[0].email, appUser[0].password) + const [selfInfoResponse, selfInfoJson] = await config.users.getSelf() + //Update password + const userWithNewPassword = { + ...selfInfoJson, + password: appUser[0].password + } + await config.users.changeSelfPassword(userWithNewPassword) + const [appPackageResponse, appPackageJson] = await config.applications.getAppPackage(app.appId) + expect(appPackageJson.screens).toBeDefined() + expect(appPackageJson.screens.length).toEqual(1) + expect(appPackageJson.screens[0].routing.roleId).toEqual("BASIC") }) it("Check Screen access for POWER role", async () => { @@ -251,6 +269,21 @@ describe("Internal API - App Specific Roles & Permissions", () => { const [changedUserInfoResponse, changedUserInfoJson] = await config.users.getInfo(createUserJson.created.successful[0]._id) expect(changedUserInfoJson.roles[app.appId]).toBeDefined() expect(changedUserInfoJson.roles[app.appId]).toEqual("POWER") + + const [basicScreenResponse, basicScreenJson] = await config.screen.create(generateScreen("BASIC")) + const [powerScreenResponse, powerScreenJson] = await config.screen.create(generateScreen("POWER")) + const [adminScreenResponse, adminScreenJson] = await config.screen.create(generateScreen("ADMIN")) + + await config.applications.publish(app.url) + const [firstappPackageResponse, firstappPackageJson] = await config.applications.getAppPackage(app.appId) + expect(firstappPackageJson.screens).toBeDefined() + expect(firstappPackageJson.screens.length).toEqual(3) + + await config.login(appUser[0].email, appUser[0].password) + const [appPackageResponse, appPackageJson] = await config.applications.getAppPackage(app.appId) + expect(appPackageJson.screens).toBeDefined() + expect(appPackageJson.screens.length).toEqual(2) + expect(appPackageJson.screens[0].routing.roleId).toEqual("BASIC") }) it("Check Screen access for ADMIN role", async () => {