graphdb-workbench-tests
Version:
Cypress tests for GraphDB workbench
165 lines (139 loc) • 5.59 kB
JavaScript
class HomeSteps {
static visitAndWaitLoader(stubNewWindow) {
if (stubNewWindow) {
cy.visit('/', {
onBeforeLoad (win) {
cy.stub(win, 'open').as('window.open');
}
});
} else {
cy.visit('/');
}
cy.window();
cy.get('.ot-splash').should('not.be.visible');
return cy.get('.ot-loader-new-content').should('not.exist');
}
static verifyTutorialVisible(shouldBeVisible) {
if (shouldBeVisible) {
cy.get('.tutorial-container')
.should('be.visible');
} else {
cy.get('.tutorial-container')
.should('not.exist');
}
}
static declineTutorial() {
// Click "No, thanks" button
cy.get('.tutorial-container .decline-tutorial').click();
}
static selectSPARQLQueryToExecute(query) {
cy.contains('ul.saved-queries li', query)
.should('be.visible')
.trigger('hover')
.find('.execute-saved-query')
.click({force: true});
}
static verifyQueryLink(queryName, modifiesRepoModal, queryURL) {
HomeSteps.selectSPARQLQueryToExecute(queryName);
modifiesRepoModal ? cy.get('.modal-body').should('be.visible') : cy.get('.modal-body').should('not.exist');
cy.url().should('eq', Cypress.config("baseUrl") + queryURL);
HomeSteps.visitAndWaitLoader();
}
static selectRepo(repositoryId) {
HomeSteps.visitAndWaitLoader();
cy.get('ul.repos')
.contains(repositoryId)
.closest('.repository')
.click();
}
static createRepo() {
let repositoryId = 'home-repository-' + Date.now();
cy.createRepository({id: repositoryId});
return repositoryId;
}
static verifyRepositoryIsSelected(repositoryId) {
cy.get('ul.repos')
.contains(repositoryId).should('not.exist');
cy.get('#btnReposGroup')
.should('contain', repositoryId);
}
static hasRepositoryInfo(repositoryId) {
cy.get('.active-repo-card')
.should('contain', repositoryId)
.and('contain', 'total statements')
.and('contain', 'explicit')
.and('contain', 'inferred')
.and('contain', 'expansion ratio')
.within(() => {
cy.get('.total-statements').should('contain', '70');
cy.get('.explicit-statements').should('contain', '0');
cy.get('.inferred-statements').should('contain', '70');
});
}
static verifyCreateRepositoryLink() {
cy.get('.card.repository-errors').should("be.visible")
.within(() => {
cy.get('.create-repository-btn')
.click()
.url()
.should('eq', Cypress.config("baseUrl") + '/repository/create?previous=home');
});
cy.get('.big-logo').click();
}
static verifyTutorialText(number, text) {
cy.get('.btn-toolbar > .btn-group >').eq(number).click();
cy.get('.tutorial-container h1').contains(text).should('be.visible');
}
static noAutocompleteToast() {
// Verify that the “Enable autocomplete” toast message is displayed.
cy.get('.autocomplete-toast')
.contains('Autocomplete is OFF').should('be.visible');
}
static getAutocompleteInput() {
let input = cy.get('.home-rdf-resource-search search-resource-input .view-res-input');
input.should('be.visible');
return input;
}
static shouldHaveAutocompleteResult(uri) {
return HomeSteps.getAutocompleteResultElement(uri).should("be.visible");
}
static autocompleteText(text, uri) {
HomeSteps.getAutocompleteInput().type(text);
return HomeSteps.shouldHaveAutocompleteResult(uri);
}
static getAutocompleteResultElement(uri) {
let element = cy.get("#auto-complete-results-wrapper p").contains(uri);
element.trigger('mouseover');
return element;
}
static verifyAutocompleteResourceLink(uri) {
cy.get('#results-loader.ot-loader').should('not.exist');
cy.get('.resource-info').should('be.visible').and("contain", uri);
}
static getAutocompleteButton(type) {
return cy.get('.home-rdf-resource-search search-resource-input .autocomplete-' + type + '-btn');
}
static getAutocompleteDisplayTypeButton(type) {
return cy.get('.home-rdf-resource-search search-resource-input .display-type-' + type + '-btn');
}
static goBackAndWaitAutocomplete(callback) {
cy.server();
cy.route('/rest/autocomplete/enabled').as('getAutocompleteStatus');
cy.go('back');
cy.wait('@getAutocompleteStatus').then(callback);
}
static openRdfSearchBox() {
cy.get('.search-rdf-btn').click();
cy.get('.search-rdf-input').should('be.visible');
cy.get('.search-rdf-input search-resource-input .view-res-input').should('be.visible')
.and('be.focused');
}
static doNotOpenRdfSearchBoxButFocusResourceSearch() {
cy.get('.search-rdf-btn').click();
cy.get('.search-rdf-input').should('not.exist');
cy.get('.search-rdf-input search-resource-input .view-res-input').should('not.exist')
cy.get('#search-resource-input-home > #search-resource-box > input').should('be.visible')
.and('be.focused');
}
}
export default HomeSteps;