Skip to content

Commit

Permalink
implemented AdminCanCreateModelAndPolicy (#1264)
Browse files Browse the repository at this point in the history
  • Loading branch information
vijayshukla30 committed May 17, 2018
1 parent 312d613 commit 608f55f
Show file tree
Hide file tree
Showing 4 changed files with 155 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ class CreateDataModelPage extends Page implements InputUtils {
fieldCheckbox { field(it).find('input', type: 'checkbox', 0).module(Checkbox) }
submitButton { $('#createdatamodel-submit', 0) }
defaultTag { $("a.remove-tag") }
policiesInput { $("input#dataModelPolicy") }
policiesInput { $("input#dataModelPolicies") }
policyTag { $("span.with-pointer.ng-binding") }
}

Expand Down Expand Up @@ -67,5 +67,15 @@ class CreateDataModelPage extends Page implements InputUtils {
String getPolicies() {
policyTag.text()
}

List<String> selectedPolicyName() {
List<String> policiesSelected = new ArrayList<>()
policiesInput.each { it ->
if (it.@'checked') {
policiesSelected.add(it.siblings('span').text())
}
}
return policiesSelected
}
}

Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ package org.modelcatalogue.core.geb

import geb.Page

class DataModelPage extends Page {
class DataModelPage extends Page implements InputUtils {

static at = {
title.startsWith('Activity of')
Expand Down Expand Up @@ -33,6 +33,11 @@ class DataModelPage extends Page {
exportXMLLink(required: false) { $('a#catalogue-element-export-specific-reports_12-menu-item-link') }
finalizedLink(required: false) { $("a#finalize-menu-item-link") }
rows { $('div.inf-table-body table tbody tr td') }
editButton(wait: true) { $('#role_item-detail_inline-editBtn') }
dataModelSearchBar(wait: true) { $('input#dataModelPolicy') }
policiesDropdown(wait: true) { $('input#dataModelPolicy').siblings('ul') }
addedPoliciesInEditDataModel(wait: true) { $('div.tags>span') }
saveButton(required: false, wait: true) { $('button#role_item-detail_inline-edit-submitBtn') }
}

String getRowsText() {
Expand Down Expand Up @@ -74,4 +79,44 @@ class DataModelPage extends Page {
String getRightSideTitle() {
rightSideTitleH3.text()
}

Boolean containsPolicies(List<String> policies) {
Boolean result = true
policies.each { it ->
if (!($('a', text: it).displayed)) {
result = false
}
}
return result
}

void editDataModel() {
editButton.click()
}

void searchPolicy(String value) {
fillInput(dataModelSearchBar, value)
sleep(2000)
policiesDropdown.$('li', 0).click()
}

void saveModel() {
waitFor { saveButton }
saveButton.click()
}

Boolean policyAdded(String value) {
Boolean contains = false
addedPoliciesInEditDataModel.each { it ->
if (it.children('span').text() == value) {
contains = true
}
}
return contains
}

void selectPolicy(String value) {
waitFor { editButton }
$('a', text: contains(value)).click()
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package org.modelcatalogue.core.geb

import geb.Page

class DataModelPolicyPage extends Page {

static url = '/#/catalogue/dataModelPolicy'

static at = { title.contains("Properties of") }

static content = {

}

}
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@ import spock.lang.Issue
import spock.lang.Narrative
import spock.lang.Specification
import spock.lang.Title
import spock.lang.Stepwise
import spock.lang.Shared
import org.modelcatalogue.core.geb.*

@Issue('https://metadata.atlassian.net/browse/MET-1443')
@Title('Test that Admin user can create a new policy when creating a data model')
Expand All @@ -24,6 +27,85 @@ import spock.lang.Title
- Select the new data policy. | Redirected to individual data policy page
- Verify that name and policy text are correct. | Name and policy text are correct
/$)
@Stepwise
class AdminCanCreateModelAndPolicySpec extends GebSpec {
@Shared
String datamodelName = "TESTING_MODEL"
@Shared
String datamodelDescription = "TESTING_MODEL_DESCRIPTION"
@Shared
List<String> policies = ["Unique of Kind",]
def "login as supervisor"() {
when: 'login as a curator'
LoginPage loginPage = to LoginPage
loginPage.login('supervisor', 'supervisor')
then:
at DashboardPage
}
def "create data model"() {
when:
DashboardPage dashboardPage = browser.page DashboardPage
dashboardPage.nav.createDataModel()
then:
at CreateDataModelPage
when:
CreateDataModelPage createDataModelPage = browser.page CreateDataModelPage
createDataModelPage.name = datamodelName
createDataModelPage.modelCatalogueIdInput = UUID.randomUUID().toString()
createDataModelPage.description = datamodelDescription
println(policies = createDataModelPage.selectedPolicyName())
createDataModelPage.submit()
then:
at DataModelPage
}
def "selected data model policy is shown"() {
when:
DataModelPage dataModelPage = browser.page DataModelPage
then:
dataModelPage.containsPolicies(policies)
}
def "edit the data model"() {
when:
DataModelPage dataModelPage = browser.page DataModelPage
dataModelPage.editDataModel()
then:
at DataModelPage
when:
dataModelPage = browser.page DataModelPage
dataModelPage.searchPolicy("Default Checks")
then:
at DataModelPage
}
def "verify new policy is added"() {
when:
DataModelPage dataModelPage = browser.page DataModelPage
then:
dataModelPage.policyAdded("Default Checks")
}
def "save data model"() {
when:
DataModelPage dataModelPage = browser.page DataModelPage
dataModelPage.saveModel()
then:
at DataModelPage
}
def "select policy"() {
when:
DataModelPage dataModelPage = browser.page DataModelPage
withNewWindow(dataModelPage.selectPolicy("Default Checks"))
then:
at DataModelPolicyPage
}
}

0 comments on commit 608f55f

Please sign in to comment.