From e34ce215ace78daa8ce1f93deec48b7329c4df98 Mon Sep 17 00:00:00 2001 From: tidusjar Date: Wed, 24 Mar 2021 09:05:40 +0000 Subject: [PATCH] Fixed all the automation tests, and the bugs that the tests found --- .../app/interfaces/IRequestEngineResult.ts | 1 + .../ClientApp/src/app/interfaces/IUser.ts | 1 + .../movie/movie-details.component.html | 2 +- .../movie/movie-details.component.ts | 11 +++- .../movie-information-panel.component.html | 2 +- .../admin-request-dialog.component.html | 29 +++++----- .../admin-request-dialog.component.ts | 8 ++- .../usermanagement-user.component.ts | 1 + src/Ombi/wwwroot/translations/en.json | 1 + .../details/movies/moviedetails.page.ts | 6 ++ .../page-objects/shared/AdminRequestDialog.ts | 58 +++++++++++++++++++ .../movie/moviedetails-buttons.spec.ts | 11 +++- .../discover/discover-cards-requests.spec.ts | 2 +- 13 files changed, 112 insertions(+), 21 deletions(-) create mode 100644 tests/cypress/integration/page-objects/shared/AdminRequestDialog.ts diff --git a/src/Ombi/ClientApp/src/app/interfaces/IRequestEngineResult.ts b/src/Ombi/ClientApp/src/app/interfaces/IRequestEngineResult.ts index 1d902261f..87ed1bf61 100644 --- a/src/Ombi/ClientApp/src/app/interfaces/IRequestEngineResult.ts +++ b/src/Ombi/ClientApp/src/app/interfaces/IRequestEngineResult.ts @@ -2,4 +2,5 @@ result: boolean; message: string; errorMessage: string; + requestId: number | undefined; } diff --git a/src/Ombi/ClientApp/src/app/interfaces/IUser.ts b/src/Ombi/ClientApp/src/app/interfaces/IUser.ts index f28075ac0..aad167a84 100644 --- a/src/Ombi/ClientApp/src/app/interfaces/IUser.ts +++ b/src/Ombi/ClientApp/src/app/interfaces/IUser.ts @@ -9,6 +9,7 @@ export interface IUser { emailAddress: string; password: string; userType: UserType; + userAlias: string; lastLoggedIn: Date; hasLoggedIn: boolean; movieRequestLimit: number; diff --git a/src/Ombi/ClientApp/src/app/media-details/components/movie/movie-details.component.html b/src/Ombi/ClientApp/src/app/media-details/components/movie/movie-details.component.html index 92eb37af4..6b56ca65e 100644 --- a/src/Ombi/ClientApp/src/app/media-details/components/movie/movie-details.component.html +++ b/src/Ombi/ClientApp/src/app/media-details/components/movie/movie-details.component.html @@ -75,7 +75,7 @@ - - + + diff --git a/src/Ombi/ClientApp/src/app/shared/admin-request-dialog/admin-request-dialog.component.ts b/src/Ombi/ClientApp/src/app/shared/admin-request-dialog/admin-request-dialog.component.ts index 217aad80b..a558951fc 100644 --- a/src/Ombi/ClientApp/src/app/shared/admin-request-dialog/admin-request-dialog.component.ts +++ b/src/Ombi/ClientApp/src/app/shared/admin-request-dialog/admin-request-dialog.component.ts @@ -112,11 +112,17 @@ export class AdminRequestDialogComponent implements OnInit { }).subscribe((x) => { if (x.result) { this.notificationService.send(x.message, "Ok"); + model.radarrQualityOverrideTitle = this.radarrProfiles?.filter(x => x.id == model.radarrPathId)[0]?.name; + model.radarrRootFolderTitle = this.radarrRootFolders?.filter(x => x.id == model.radarrFolderId)[0]?.path; + + model.requestId = x.requestId; + + this.dialogRef.close(model); + } else { this.notificationService.send(x.errorMessage, "Ok"); } - this.dialogRef.close(); }) } diff --git a/src/Ombi/ClientApp/src/app/usermanagement/usermanagement-user.component.ts b/src/Ombi/ClientApp/src/app/usermanagement/usermanagement-user.component.ts index 486f456d0..bfbabd0a3 100644 --- a/src/Ombi/ClientApp/src/app/usermanagement/usermanagement-user.component.ts +++ b/src/Ombi/ClientApp/src/app/usermanagement/usermanagement-user.component.ts @@ -78,6 +78,7 @@ export class UserManagementUserComponent implements OnInit { episodeRequestQuota: null, movieRequestQuota: null, language: null, + userAlias: "", streamingCountry: "US", userQualityProfiles: { radarrQualityProfile: 0, diff --git a/src/Ombi/wwwroot/translations/en.json b/src/Ombi/wwwroot/translations/en.json index 1f44a9eec..b9873e2cc 100644 --- a/src/Ombi/wwwroot/translations/en.json +++ b/src/Ombi/wwwroot/translations/en.json @@ -252,6 +252,7 @@ "ViewCollection":"View Collection", "NotEnoughInfo": "Unfortunately there is not enough information about this show yet!", "AdvancedOptions":"Advanced Options", + "AutoApproveOptions":"You can configure the request here, once requested it will be send to your DVR application and will be auto approved!", "QualityProfilesSelect":"Select A Quality Profile", "RootFolderSelect":"Select A Root Folder", "Status":"Status", diff --git a/tests/cypress/integration/page-objects/details/movies/moviedetails.page.ts b/tests/cypress/integration/page-objects/details/movies/moviedetails.page.ts index d22d1b7ac..ce1c7bcfb 100644 --- a/tests/cypress/integration/page-objects/details/movies/moviedetails.page.ts +++ b/tests/cypress/integration/page-objects/details/movies/moviedetails.page.ts @@ -1,10 +1,15 @@ import { BasePage } from "../../base.page"; +import { AdminRequestDialog } from "../../shared/AdminRequestDialog"; class MovieInformationPanel { get denyReason(): Cypress.Chainable { return cy.get('#deniedReasonInfo'); } + + get requestedBy(): Cypress.Chainable { + return cy.get('#requestedByInfo'); + } } class DenyModal { @@ -74,6 +79,7 @@ class MovieDetailsPage extends BasePage { denyModal = new DenyModal(); informationPanel = new MovieInformationPanel(); + adminOptionsDialog = new AdminRequestDialog(); constructor() { super(); diff --git a/tests/cypress/integration/page-objects/shared/AdminRequestDialog.ts b/tests/cypress/integration/page-objects/shared/AdminRequestDialog.ts new file mode 100644 index 000000000..c684b5d61 --- /dev/null +++ b/tests/cypress/integration/page-objects/shared/AdminRequestDialog.ts @@ -0,0 +1,58 @@ + +export class AdminRequestDialog { + + isOpen(): Cypress.Chainable { + return cy.waitUntil(x => { + return this.title.should('exist'); + }); + } + + get title(): Cypress.Chainable { + return cy.get(`#advancedOptionsTitle`); + } + + get requestOnBehalfUserInput(): Cypress.Chainable { + return cy.get(`#requestOnBehalfUserInput`); + } + + get sonarrQualitySelect(): Cypress.Chainable { + return cy.get(`#sonarrQualitySelect`); + } + + selectSonarrQuality(id: number): Cypress.Chainable { + return cy.get(`#sonarrQualitySelect${id}`); + } + + get sonarrFolderSelect(): Cypress.Chainable { + return cy.get(`#sonarrFolderSelect`); + } + + selectSonarrFolder(id: number): Cypress.Chainable { + return cy.get(`#sonarrFolderSelect${id}`); + } + + get radarrQualitySelect(): Cypress.Chainable { + return cy.get(`#radarrQualitySelect`); + } + + selectradarrQuality(id: number): Cypress.Chainable { + return cy.get(`#radarrQualitySelect${id}`); + } + + get radarrFolderSelect(): Cypress.Chainable { + return cy.get(`#radarrFolderSelect`); + } + + selectradarrFolder(id: number): Cypress.Chainable { + return cy.get(`#radarrFolderSelect${id}`); + } + + + get cancelButton(): Cypress.Chainable { + return cy.get(`#cancelButton`); + } + + get requestButton(): Cypress.Chainable { + return cy.get(`#requestButton`); + } +} diff --git a/tests/cypress/tests/details/movie/moviedetails-buttons.spec.ts b/tests/cypress/tests/details/movie/moviedetails-buttons.spec.ts index 5482ecfbc..86d49506c 100644 --- a/tests/cypress/tests/details/movie/moviedetails-buttons.spec.ts +++ b/tests/cypress/tests/details/movie/moviedetails-buttons.spec.ts @@ -6,6 +6,10 @@ describe("Movie Details Buttons", () => { Page.visit("587807"); Page.requestButton.click(); + Page.adminOptionsDialog.isOpen(); + + Page.adminOptionsDialog.requestButton.click(); + cy.verifyNotification("Tom & Jerry (2021) has been successfully added"); Page.requestedButton.should("be.visible"); @@ -83,6 +87,8 @@ describe("Movie Details Buttons", () => { Page.visit("399566"); Page.requestButton.click(); + Page.adminOptionsDialog.isOpen(); + Page.adminOptionsDialog.requestButton.click(); cy.verifyNotification( "Godzilla vs. Kong (2021) has been successfully added" ); @@ -96,12 +102,14 @@ describe("Movie Details Buttons", () => { Page.availableButton.should("exist"); }); - it("Movie Requested, Deny Movie", () => { + it.only("Movie Requested, Deny Movie", () => { cy.login(); Page.visit("671"); Page.requestButton.click(); + Page.adminOptionsDialog.isOpen(); + Page.adminOptionsDialog.requestButton.click(); cy.verifyNotification( "Harry Potter and the Philosopher's Stone (2001) has been successfully added" ); @@ -112,6 +120,7 @@ describe("Movie Details Buttons", () => { Page.denyButton.click(); Page.denyModal.denyReason.type("Automation Tests"); + cy.wait(500); Page.denyModal.denyButton.click(); Page.deniedButton.should('exist'); diff --git a/tests/cypress/tests/discover/discover-cards-requests.spec.ts b/tests/cypress/tests/discover/discover-cards-requests.spec.ts index 9a6c16e1b..4e04ff8b8 100644 --- a/tests/cypress/tests/discover/discover-cards-requests.spec.ts +++ b/tests/cypress/tests/discover/discover-cards-requests.spec.ts @@ -173,7 +173,7 @@ describe("Discover Cards Requests Tests", () => { }); }); - it.only("Not available TV does not allow us to request", () => { + it("Not available TV does not allow us to request", () => { cy.intercept("GET", "**/search/Tv/popular/**", (req) => { req.reply((res) => { const body = res.body;