Skip to content

Commit

Permalink
Implemented CreateNewVersionOfDataModelSpec #1271
Browse files Browse the repository at this point in the history
  • Loading branch information
vijayshukla30 committed May 15, 2018
1 parent d532d2f commit dff54c7
Show file tree
Hide file tree
Showing 6 changed files with 192 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ import spock.lang.Issue
import spock.lang.Narrative
import spock.lang.Specification
import spock.lang.Title
import org.modelcatalogue.core.geb.*
import spock.lang.*

@Issue('https://metadata.atlassian.net/browse/MET-1756')
@Title('Create a new version of a data model')
Expand All @@ -29,5 +31,118 @@ import spock.lang.Title
- Verify that you can select the option 'New Version' | Option is selectable
/$)

@Stepwise
class CreateNewVersionOfDataModelSpec extends GebSpec {

@Shared
String dataModelName = UUID.randomUUID().toString()
@Shared
String dataModelCatalogueId = UUID.randomUUID().toString()
@Shared
String dataModelDescription = "description"
@Shared
String semanticVersion = "1.2.6"
String version = "1.1"
@Shared
String versionNote = "versionNote"

def "Login as curator"() {
when:
LoginPage loginPage = to LoginPage
loginPage.login('curator', 'curator')
then:
at DashboardPage
}

def "Create data model and filling data model form"() {
when:
DashboardPage dashboardPage = browser.page DashboardPage
dashboardPage.nav.createDataModel()
then:
at CreateDataModelPage
when:
CreateDataModelPage createDataModelPage = browser.page CreateDataModelPage
createDataModelPage.name = dataModelName
createDataModelPage.modelCatalogueId = dataModelCatalogueId
createDataModelPage.description = dataModelDescription
createDataModelPage.submit()
then:
at DataModelPage
}

def "Finalize data model"() {

when:
DataModelPage dataModelPage = browser.page DataModelPage
dataModelPage.dropdown()
dataModelPage.finalizedDataModel()
then:
at FinalizeDataModelPage
when:
FinalizeDataModelPage finalizeDataModelPage = browser.page FinalizeDataModelPage
finalizeDataModelPage.version = version
finalizeDataModelPage.setVersionNote(versionNote)
finalizeDataModelPage.submit()
then:
at FinalizedDataModelPage
when:
FinalizedDataModelPage finalizedDataModelPage = browser.page FinalizedDataModelPage
finalizedDataModelPage.hideConfirmation()
then:
at DataModelPage
}

def "Check data model status is diaplayimg as finalized "() {
when:
DataModelPage dataModelPage = browser.page DataModelPage
then:
true

when:
dataModelPage = browser.page DataModelPage
dataModelPage.dropdown()
dataModelPage.dropdownMenu.createNewVersion()
then:
NewVersionDataModelPage

when:
NewVersionDataModelPage newVersionDataModelPage = browser.page NewVersionDataModelPage
newVersionDataModelPage.semanticVersionText(semanticVersion)
newVersionDataModelPage.submit()
newVersionDataModelPage.hideConfirmation()
then:
at DataModelPage
}

def "Open version tag and delete newly created version"() {
when:
DataModelPage dataModelPage = browser.page DataModelPage
dataModelPage.treeView.select("Versions")
then:
at VersionsPage

when:
VersionsPage versionsPage = browser.page VersionsPage
versionsPage.selectVersion(semanticVersion)
versionsPage.dataElementDropDownClick()
versionsPage.deleteBttnClick()
versionsPage.deleteConfirmationBttnClick()
then:
at DashboardPage
}

def "Select data model from dashboard and check for new version link"() {
when:
DashboardPage dashboardPage = browser.page DashboardPage
dashboardPage.search(dataModelName)
dashboardPage.select(dataModelName)
then:
DataModelPage

when:
DataModelPage dataModelPage = browser.page DataModelPage
dataModelPage.dropdown()
then:
dataModelPage.dropdownMenu.newLinkDisplay()
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,11 @@ class DashboardPage extends Page {
static at = { title == 'Dashboard' }

static content = {
searchInputField { $('#search', 0) }
searchInputField(wait:true){ $('#search', 0) }
dataModelLinks(required: false) { $('a.data-model-link') }
searchButton { $('#search-btn') }
searchButton (wait:true){ $('#search-btn') }
dataModelLink(wait: true) { $('a.data-model-link', text: it) }
nav { $('#topmenu', 0) .module(NavModule) }
nav { $('#topmenu', 0).module(NavModule) }
}

void search(String query) {
Expand All @@ -32,7 +32,7 @@ class DashboardPage extends Page {
}

int count() {
if ( dataModelLinks.empty ) {
if (dataModelLinks.empty) {
return 0
}
dataModelLinks.size()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,11 @@ class DataModelNavModule extends Module {
public static final String createDataClassLinkSelector = 'li#catalogue-element-create-dataClass-menu-item a'
public static final String createDataElementLinkSelector = 'li#catalogue-element-create-dataElement-menu-item a'
public static final String createDataTypeLinkSelector = 'li#catalogue-element-create-dataType-menu-item a'
public static final String createMeasurementUnitLinkSelector = 'li#catalogue-element-create-measurementUnit-menu-item a'
public static
final String createMeasurementUnitLinkSelector = 'li#catalogue-element-create-measurementUnit-menu-item a'
public static final String createAssetLinkSelector = 'li#catalogue-element-create-asset-menu-item a'
public static final String createValidationRuleLinkSelector = 'li#catalogue-element-create-validationRule-menu-item a'
public static
final String createValidationRuleLinkSelector = 'li#catalogue-element-create-validationRule-menu-item a'
public static final String mergeLinkSelector = 'li#merge-menu-item a'
public static final String cloneAnotherIntoCurrentLinkSelector = 'li#clone-from-menu-item a'
public static final String cloneCurrentIntoAnotherLinkSelector = 'li#clone-menu-item a'
Expand All @@ -27,7 +29,7 @@ class DataModelNavModule extends Module {
creteNewVersionLink(required: false, wait: true) { $(creteNewVersionLinkSelector, 0) }
archiveLink(required: false, wait: true) { $(archiveLinkSelector, 0) }
deleteLink(required: false, wait: true) { $(deleteLinkSelector, 0) }
addImportLink(required: false, wait: true) { $(addImportLinkSelector, 0) }
addImportLink(required: false, wait: true) { $(addImportLinkSelector, 0) }
createNewRelationshipLink(required: false, wait: true) { $(createNewRelationshipLinkSelector, 0) }
createDataClassLink(required: false, wait: true) { $(createDataClassLinkSelector, 0) }
createDataElementLink(required: false, wait: true) { $(createDataElementLinkSelector, 0) }
Expand Down Expand Up @@ -168,4 +170,8 @@ class DataModelNavModule extends Module {
void cloneCurrentIntoAnother() {
cloneCurrentIntoAnotherLink.click()
}

Boolean newLinkDisplay() {
creteNewVersionLink.displayed
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -31,12 +31,12 @@ class DataModelPage extends Page {
}
exportLink(required: false) { $('a#role_item_export-menu-item-link') }
exportXMLLink(required: false) { $('a#catalogue-element-export-specific-reports_12-menu-item-link') }
finalizedLink(required: false) { $("a#finalize-menu-item-link") }
finalizedLink(required: false, wait: true) { $("a#finalize-menu-item-link") }
rows { $('div.inf-table-body table tbody tr td') }
policiesList { $('div.row.detail-section', 0).$('div.ng-scope span') }

editModelButton(wait: true) { $('#role_item-detail_inline-editBtn') }
ModelEditSaveButton(required: false, wait: true) { $('#role_item-detail_inline-edit-submitBtn') }
finalizedStatus(required: false, wait: true) { $('div.col-md-6', text: 'Status').siblings() }
}

String getRowsText() {
Expand All @@ -51,6 +51,11 @@ class DataModelPage extends Page {
exportXMLLink.click()
}

Boolean finalizedStatus() {
finalizedStatus.text().toLowerCase().equals("finalized")

}

void export() {
exportLink.click()
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package org.modelcatalogue.core.geb

import geb.Page

class NewVersionDataModelPage extends Page implements InputUtils {
static atCheckWaiting = true

static at = { $("div.modal-header>h4").text()?.contains('New Version of Data Model') }

static content = {
semanticVersion(wait: true) { $('input#semanticVersion') }
createVersionButton(wait: true) { $('div.contextual-actions.ng-isolate-scope.btn-toolbar', 0) }
hideButton(wait: true) { $('form.ng-pristine>button.btn.btn-primary') }
}

void hideConfirmation() {
hideButton.click()
sleep(2000)
}

void semanticVersionText(String value) {
fillInput(semanticVersion, value)
}

void submit() {
createVersionButton.click()
sleep(3_000)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,15 +15,40 @@ class VersionsPage extends Page {

static content = {
rows { $('#history-tab tbody tr') }
versionSelect (wait:true){ $('a.preserve-new-lines.ng-binding.ng-scope', text: it).siblings('a') }
expandLink (wait:true){ $('a.inf-cell-expand') }
dataElementDropDown (wait:true){ $('button#role_item_catalogue-elementBtn') }
deleteBttn(wait:true) { $('a#deleteBtn') }
deleteConfirmationBttn(wait:true) { $('button.btn.btn-primary') }
}

boolean rowsContainText(String text) {
for ( int i = 0; i < rows.size(); i++ ) {
if ( rows[i].text().contains(text) ) {
boolean rowsContainText(String text) {
for (int i = 0; i < rows.size(); i++) {
if (rows[i].text().contains(text)) {
return true
}
}
false
}

void expandLinkClick() {
expandLink.click()
}

void selectVersion(String version) {
versionSelect(version).click()
}

void dataElementDropDownClick() {
dataElementDropDown.click()
}

void deleteBttnClick() {
deleteBttn.click()
}

void deleteConfirmationBttnClick() {
deleteConfirmationBttn.click()
}

}

0 comments on commit dff54c7

Please sign in to comment.