UNPKG

graphdb-workbench-tests

Version:
284 lines (222 loc) 10.2 kB
import {GuideDialogSteps} from "./guide-dialog-steps"; import {MainMenuSteps} from "../main-menu-steps"; import {RepositorySteps} from "../repository-steps"; import {RepositorySelectorSteps} from "../repository-selector-steps"; import {AutocompleteSteps} from "../setup/autocomplete-steps"; import ImportSteps from "../import/import-steps"; import {BaseSteps} from "../base-steps"; export class GuideSteps extends BaseSteps { static visit() { cy.visit('/guides'); } static runGuide(guideName) { cy.contains('td', guideName) .parent() .within($tr => { cy.get('.btn').click(); }); } static getElementByGuideSelector(selctor) { return cy.get(`[guide-selector="${selctor}"]`); } static assertIsElementInteractable(selector) { cy.get(selector).should('be.visible'); } static assertPageNotInteractive() { cy.get('.shepherd-modal-is-visible'); } static assertWelcomePage(guideName) { GuideDialogSteps.assertDialogWithTitleIsVisible(`Welcome to ${guideName} — 2/2`); GuideSteps.assertPageNotInteractive(); } static assertCreateRepositoryStep1() { GuideDialogSteps.assertDialogWithTitleIsVisible('Create repository — 1/7'); } static assertCreateRepositoryStep2() { GuideDialogSteps.assertDialogWithTitleIsVisible('Create repository — 2/7'); GuideSteps.assertPageNotInteractive(); MainMenuSteps.getMenuSetup().should('be.visible'); MainMenuSteps.getMenuButton('Repositories').should('not.be.visible'); } static assertCreateRepositoryStep3() { GuideDialogSteps.assertDialogWithTitleIsVisible('Create repository — 3/7'); GuideSteps.assertPageNotInteractive(); MainMenuSteps.getMenuButton('Repositories').should('be.visible'); } static assertCreateRepositoryStep4() { GuideDialogSteps.assertDialogWithTitleIsVisible('Create repository — 4/7'); GuideSteps.assertPageNotInteractive(); RepositorySteps.getCreateRepositoryButton().should('be.visible'); } static assertCreateRepositoryStep5() { GuideDialogSteps.assertDialogWithTitleIsVisible('Create repository — 5/7'); GuideSteps.assertPageNotInteractive(); RepositorySteps.getGDBRepositoryTypeButton().should('be.visible'); } static assertCreateRepositoryStep6() { GuideDialogSteps.assertDialogWithTitleIsVisible('Create repository — 6/7'); GuideSteps.assertPageNotInteractive(); RepositorySteps.getRepositoryIdField().should('be.visible'); } static assertCreateRepositoryStep7(repositoryId) { GuideDialogSteps.assertDialogWithTitleIsVisible('Create repository — 7/7'); GuideSteps.assertPageNotInteractive(); RepositorySteps.getRepositoryIdField().should('have.value', repositoryId); RepositorySteps.getSaveRepositoryButton().should('be.visible'); } static createRepositoryByNextButton(repositoryId) { GuideSteps.assertCreateRepositoryStep1(); GuideDialogSteps.clickOnNextButton(); GuideSteps.assertCreateRepositoryStep2(); GuideDialogSteps.clickOnNextButton(); GuideSteps.assertCreateRepositoryStep3(); GuideDialogSteps.clickOnNextButton(); GuideSteps.assertCreateRepositoryStep4(); // Step click on button "GraphDB Repository". GuideDialogSteps.clickOnNextButton(); GuideSteps.assertCreateRepositoryStep5(); // Step enter "Repository ID". GuideDialogSteps.clickOnNextButton(); GuideSteps.assertCreateRepositoryStep6(); // Step select "Create" repository button. GuideDialogSteps.clickOnNextButton(); GuideSteps.assertCreateRepositoryStep7(repositoryId); GuideDialogSteps.clickOnNextButton(); GuideSteps.assertPageNotInteractive(); } static assertSelectRepositoryStep1() { GuideDialogSteps.assertDialogWithTitleIsVisible('Connect to repository — 1/2'); RepositorySelectorSteps.getRepositorySelectorsButton().should('be.visible'); } static assertSelectRepositoryStep2(repositoryId) { GuideSteps.assertPageNotInteractive(); GuideDialogSteps.assertDialogWithTitleIsVisible('Connect to repository — 2/2'); RepositorySelectorSteps.getRepositorySelectorButton(repositoryId).should('be.visible'); } static selectRepositoryByNextButton(repositoryId) { GuideSteps.assertSelectRepositoryStep1(); GuideDialogSteps.clickOnNextButton(); GuideSteps.assertSelectRepositoryStep2(repositoryId); } static assertEnableAutocompleteStep1() { GuideDialogSteps.assertDialogWithTitleIsVisible('Enable autocomplete — 1/5'); } static assertEnableAutocompleteStep2() { GuideDialogSteps.assertDialogWithTitleIsVisible('Enable autocomplete — 2/5'); GuideSteps.assertPageNotInteractive(); MainMenuSteps.getMenuSetup().should('be.visible'); } static assertEnableAutocompleteStep3() { GuideDialogSteps.assertDialogWithTitleIsVisible('Enable autocomplete — 3/5'); GuideSteps.assertPageNotInteractive(); MainMenuSteps.getSubmenuAutocomplete().should('be.visible'); } static assertEnableAutocompleteStep4() { GuideDialogSteps.assertDialogWithTitleIsVisible('Enable autocomplete — 4/5'); GuideSteps.assertPageNotInteractive(); AutocompleteSteps.getAutocompleteSwitch().should('be.visible'); } static assertEnableAutocompleteStep5() { GuideDialogSteps.assertDialogWithTitleIsVisible('Enable autocomplete — 5/5'); GuideSteps.assertPageNotInteractive(); AutocompleteSteps.getSuccessStatusElement().should('be.visible'); } static enableAutocompleteByNextButton() { GuideSteps.assertEnableAutocompleteStep1(); // Step select menu setup. GuideDialogSteps.clickOnNextButton(); GuideSteps.assertEnableAutocompleteStep2(); // Step select autocomplete. GuideDialogSteps.clickOnNextButton(); GuideSteps.assertEnableAutocompleteStep3(); // Step enable autocomplete index. GuideDialogSteps.clickOnNextButton(); GuideSteps.assertEnableAutocompleteStep4(); // Step wait autocomplete indexing complete GuideDialogSteps.clickOnNextButton(); GuideSteps.assertEnableAutocompleteStep5(); } static assertImportFileStep1() { GuideDialogSteps.assertDialogWithTitleIsVisible('Import file — 1/7'); } static assertImportFileStep2() { GuideDialogSteps.assertDialogWithTitleIsVisible('Import file — 2/7'); GuideSteps.assertPageNotInteractive(); MainMenuSteps.getMenuImport().should('be.visible'); } static assertImportFileStep3() { GuideSteps.assertPageNotInteractive(); GuideDialogSteps.assertDialogWithTitleIsVisible('Import file — 3/7'); } static assertImportFileStep4() { GuideDialogSteps.assertDialogWithTitleIsVisible('Import file — 4/7'); GuideSteps.assertPageNotInteractive(); ImportSteps.getImportRdfFileElement().should('be.visible'); } static assertImportFileStep6() { GuideSteps.assertPageNotInteractive(); GuideDialogSteps.assertDialogWithTitleIsVisible('Import file — 6/7'); } static assertImportFileStep7() { GuideDialogSteps.assertDialogWithTitleIsVisible('Import file — 7/7'); GuideSteps.assertPageNotInteractive(); ImportSteps.getImportStatusRow(0).contains('Imported successfully'); } static importFileByNextButton(fileToImport) { GuideSteps.assertImportFileStep1(); // Step select "Import" button. GuideDialogSteps.clickOnNextButton(); GuideSteps.assertImportFileStep2(); // Step described download of file. GuideDialogSteps.clickOnNextButton(); GuideSteps.assertImportFileStep3(); // Step click Upload RDF files button. GuideDialogSteps.clickOnNextButton(); GuideSteps.assertImportFileStep4(); ImportSteps.selectFile(`fixtures/guides/${fileToImport}`); GuideSteps.assertImportFileStep6(); // Step click on Import button. GuideDialogSteps.clickOnNextButton(); GuideSteps.assertImportFileStep7(); } static runGuideTest(guideName, repositoryId, fileToImport, stepAssertions = []) { GuideSteps.runGuide(guideName); GuideSteps.assertPageNotInteractive(); // Step Welcome to Star Wars guide GuideDialogSteps.clickOnNextButton(); GuideSteps.assertWelcomePage(guideName); GuideDialogSteps.clickOnNextButton(); GuideSteps.assertPageNotInteractive(); GuideSteps.createRepositoryByNextButton(repositoryId); // Step select "Choose repository" button. GuideSteps.selectRepositoryByNextButton(repositoryId); // Step described autocomplete. GuideDialogSteps.clickOnNextButton(); GuideSteps.assertPageNotInteractive(); GuideSteps.enableAutocompleteByNextButton(); // Step import file intro GuideDialogSteps.clickOnNextButton(); GuideSteps.assertPageNotInteractive(); GuideSteps.importFileByNextButton(fileToImport); GuideDialogSteps.clickOnNextButton(); stepAssertions.forEach((stepAssert) => { stepAssert.assert(); GuideDialogSteps.clickOnNextButton(stepAssert.forceButtonClick); }); GuideDialogSteps.assertDialogWithTitleIsVisible('End of guide'); } static getGuidesPerPageBar() { return this.getByTestId('guides-per-page-bar'); } static getGuidesPaginator() { return this.getByTestId('guides-paginator'); } static getGuidesList() { return this.getByTestId('guides-list'); } static verifyInitialState() { this.getGuidesPerPageBar().should('be.visible'); this.getGuidesPaginator().should('exist'); this.getGuidesList().should('be.visible'); } }