Skip to content

Commit

Permalink
Refactored tests for ShallowRendererUtils.assertComponent
Browse files Browse the repository at this point in the history
  • Loading branch information
viktor-podzigun committed Oct 17, 2018
1 parent b788368 commit 1bae61a
Show file tree
Hide file tree
Showing 13 changed files with 212 additions and 267 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -205,42 +205,38 @@ class CompanyPanelSpec extends TestSpec {
createPopup: ComponentInstance,
editPopup: Option[ComponentInstance]): Assertion = {

assertComponent(buttonsPanel, ButtonsPanel(), { bpProps: ButtonsPanelProps =>
inside(bpProps) { case ButtonsPanelProps(buttons, actions, dispatch, group, _) =>
assertComponent(buttonsPanel, ButtonsPanel) {
case ButtonsPanelProps(buttons, actions, dispatch, group, _) =>
buttons shouldBe List(Buttons.ADD, Buttons.EDIT)
actions.enabledCommands shouldBe {
Set(Buttons.ADD.command) ++ selectedData.map(_ => Buttons.EDIT.command)
}
dispatch shouldBe props.dispatch
group shouldBe false
}
})
assertComponent(tablePanel, CompanyTablePanel(), { tpProps: CompanyTablePanelProps =>
inside(tpProps) { case CompanyTablePanelProps(dispatch, actions, data) =>
}
assertComponent(tablePanel, CompanyTablePanel) {
case CompanyTablePanelProps(dispatch, actions, data) =>
dispatch shouldBe props.dispatch
actions shouldBe props.actions
data shouldBe props.data
}
})
}

assertComponent(createPopup, InputPopup(), { ppProps: InputPopupProps =>
inside(ppProps) { case InputPopupProps(show, message, _, _, placeholder, initialValue) =>
assertComponent(createPopup, InputPopup) {
case InputPopupProps(show, message, _, _, placeholder, initialValue) =>
show shouldBe props.data.showCreatePopup
message shouldBe "Enter Company name:"
placeholder shouldBe None
initialValue shouldBe "New Company"
}
})
}
editPopup.isEmpty shouldBe selectedData.isEmpty
selectedData.foreach { data =>
assertComponent(editPopup.get, InputPopup(), { ppProps: InputPopupProps =>
inside(ppProps) { case InputPopupProps(show, message, _, _, placeholder, initialValue) =>
assertComponent(editPopup.get, InputPopup) {
case InputPopupProps(show, message, _, _, placeholder, initialValue) =>
show shouldBe props.data.showEditPopup
message shouldBe "Enter new Company name:"
placeholder shouldBe None
initialValue shouldBe data.name
}
})
}
}
Succeeded
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -171,20 +171,18 @@ class CompanyTablePanelSpec extends TestSpec {
val expectedSelectedPage = math.min(expectedTotalPages, toPage(props.data.offset.getOrElse(0), limit))

assertDOMComponent(result, <.div()(), { case List(tablePanel, paginationPanel) =>
assertComponent(tablePanel, TablePanel(), { tpProps: TablePanelProps =>
inside(tpProps) { case TablePanelProps(header, rows, selectedIds, _) =>
assertComponent(tablePanel, TablePanel) {
case TablePanelProps(header, rows, selectedIds, _) =>
header shouldBe tableHeader
rows shouldBe tableRows
selectedIds shouldBe props.data.selectedId.map(_.toString).toSet
}
})
assertComponent(paginationPanel, PaginationPanel(), { ppProps: PaginationPanelProps =>
inside(ppProps) { case PaginationPanelProps(totalPages, selectedPage, _, alignment) =>
}
assertComponent(paginationPanel, PaginationPanel) {
case PaginationPanelProps(totalPages, selectedPage, _, alignment) =>
totalPages shouldBe expectedTotalPages
selectedPage shouldBe expectedSelectedPage
alignment shouldBe PaginationAlignment.Centered
}
})
}
})
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -203,25 +203,23 @@ class RolePanelSpec extends TestSpec {
def assertComponents(createPopup: ComponentInstance,
editPopup: Option[ComponentInstance]): Assertion = {

assertComponent(createPopup, InputPopup(), { ppProps: InputPopupProps =>
inside(ppProps) { case InputPopupProps(show, message, _, _, placeholder, initialValue) =>
assertComponent(createPopup, InputPopup) {
case InputPopupProps(show, message, _, _, placeholder, initialValue) =>
show shouldBe props.state.showCreatePopup
message shouldBe "Enter Role title:"
placeholder shouldBe None
initialValue shouldBe "NEW_ROLE"
}
})
}

editPopup.isEmpty shouldBe selectedData.isEmpty
selectedData.foreach { data =>
assertComponent(editPopup.get, InputPopup(), { ppProps: InputPopupProps =>
inside(ppProps) { case InputPopupProps(show, message, _, _, placeholder, initialValue) =>
assertComponent(editPopup.get, InputPopup) {
case InputPopupProps(show, message, _, _, placeholder, initialValue) =>
show shouldBe props.state.showEditPopup
message shouldBe "Enter new Role title:"
placeholder shouldBe None
initialValue shouldBe data.title
}
})
}
}
Succeeded
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -270,13 +270,12 @@ class RolePermissionPanelSpec extends TestSpec {
private def assertRolePermissionPanel(result: ComponentInstance, props: RolePermissionPanelProps): Unit = {
val roots = buildTree(props.state.permissionsByParentId)

assertComponent(result, CheckBoxTree(), { resultProps: CheckBoxTreeProps =>
inside(resultProps) { case CheckBoxTreeProps(resultRoots, _, readOnly, openNodes, closeNodes) =>
assertComponent(result, CheckBoxTree) {
case CheckBoxTreeProps(resultRoots, _, readOnly, openNodes, closeNodes) =>
resultRoots shouldBe roots
readOnly shouldBe false
openNodes shouldBe roots.map(_.key).toSet
closeNodes shouldBe Set.empty[String]
}
})
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -144,59 +144,51 @@ class SystemEditPanelSpec extends TestSpec {
assertDOMComponent(result, <.div()(), { case List(nameComp, passwordComp, titleComp, urlComp) =>
assertDOMComponent(nameComp, <.div()(), { case List(labelComp, fieldComp) =>
assertDOMComponent(labelComp, <.label()("Name"))
assertComponent(fieldComp, TextField(), { fieldProps: TextFieldProps =>
inside(fieldProps) {
case TextFieldProps(text, _, requestFocus, requestSelect, className, placeholder, _, readOnly) =>
text shouldBe data.name
requestFocus shouldBe props.requestFocus
requestSelect shouldBe props.requestFocus
className shouldBe Some("input-xlarge")
placeholder shouldBe None
readOnly shouldBe props.readOnly
}
})
assertComponent(fieldComp, TextField) {
case TextFieldProps(text, _, requestFocus, requestSelect, className, placeholder, _, readOnly) =>
text shouldBe data.name
requestFocus shouldBe props.requestFocus
requestSelect shouldBe props.requestFocus
className shouldBe Some("input-xlarge")
placeholder shouldBe None
readOnly shouldBe props.readOnly
}
})
assertDOMComponent(passwordComp, <.div()(), { case List(labelComp, fieldComp) =>
assertDOMComponent(labelComp, <.label()("Password"))
assertComponent(fieldComp, PasswordField(), { fieldProps: PasswordFieldProps =>
inside(fieldProps) {
case PasswordFieldProps(password, _, requestFocus, requestSelect, className, placeholder, _, readOnly) =>
password shouldBe data.password
requestFocus shouldBe false
requestSelect shouldBe false
className shouldBe Some("input-xlarge")
placeholder shouldBe None
readOnly shouldBe props.readOnly
}
})
assertComponent(fieldComp, PasswordField) {
case PasswordFieldProps(password, _, requestFocus, requestSelect, className, placeholder, _, readOnly) =>
password shouldBe data.password
requestFocus shouldBe false
requestSelect shouldBe false
className shouldBe Some("input-xlarge")
placeholder shouldBe None
readOnly shouldBe props.readOnly
}
})
assertDOMComponent(titleComp, <.div()(), { case List(labelComp, fieldComp) =>
assertDOMComponent(labelComp, <.label()("Title"))
assertComponent(fieldComp, TextField(), { fieldProps: TextFieldProps =>
inside(fieldProps) {
case TextFieldProps(text, _, requestFocus, requestSelect, className, placeholder, _, readOnly) =>
text shouldBe data.title
requestFocus shouldBe false
requestSelect shouldBe false
className shouldBe Some("input-xlarge")
placeholder shouldBe None
readOnly shouldBe props.readOnly
}
})
assertComponent(fieldComp, TextField) {
case TextFieldProps(text, _, requestFocus, requestSelect, className, placeholder, _, readOnly) =>
text shouldBe data.title
requestFocus shouldBe false
requestSelect shouldBe false
className shouldBe Some("input-xlarge")
placeholder shouldBe None
readOnly shouldBe props.readOnly
}
})
assertDOMComponent(urlComp, <.div()(), { case List(labelComp, fieldComp) =>
assertDOMComponent(labelComp, <.label()("URL"))
assertComponent(fieldComp, TextField(), { fieldProps: TextFieldProps =>
inside(fieldProps) {
case TextFieldProps(text, _, requestFocus, requestSelect, className, placeholder, _, readOnly) =>
text shouldBe data.url
requestFocus shouldBe false
requestSelect shouldBe false
className shouldBe Some("input-xlarge")
placeholder shouldBe None
readOnly shouldBe props.readOnly
}
})
assertComponent(fieldComp, TextField) {
case TextFieldProps(text, _, requestFocus, requestSelect, className, placeholder, _, readOnly) =>
text shouldBe data.url
requestFocus shouldBe false
requestSelect shouldBe false
className shouldBe Some("input-xlarge")
placeholder shouldBe None
readOnly shouldBe props.readOnly
}
})
})
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,16 +34,14 @@ class SystemEditPopupSpec extends TestSpec {
val result = shallowRender(component)

//then
assertComponent(result, SystemEditPanel(), { panelProps: SystemEditPanelProps =>
inside(panelProps) {
case SystemEditPanelProps(readOnly, initialData, requestFocus, pOnChange, pOnEnter) =>
readOnly shouldBe false
initialData shouldBe props.initialData
requestFocus shouldBe true
pOnChange shouldBe onChange
pOnEnter shouldBe onSave
}
})
assertComponent(result, SystemEditPanel) {
case SystemEditPanelProps(readOnly, initialData, requestFocus, pOnChange, pOnEnter) =>
readOnly shouldBe false
initialData shouldBe props.initialData
requestFocus shouldBe true
pOnChange shouldBe onChange
pOnEnter shouldBe onSave
}
}

private def getSystemEditPopupProps(show: Boolean = true,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -237,8 +237,8 @@ class SystemPanelSpec extends TestSpec {

createPopup.isEmpty shouldBe props.selectedParentId.isEmpty
props.selectedParentId.foreach { parentId =>
assertComponent(createPopup.get, SystemEditPopup(), { ppProps: SystemEditPopupProps =>
inside(ppProps) { case SystemEditPopupProps(show, title, initialData, _, _) =>
assertComponent(createPopup.get, SystemEditPopup) {
case SystemEditPopupProps(show, title, initialData, _, _) =>
show shouldBe props.state.showCreatePopup
title shouldBe "New Application"
initialData shouldBe SystemData(
Expand All @@ -249,26 +249,23 @@ class SystemPanelSpec extends TestSpec {
url = "",
parentId = parentId
)
}
})
}
}

editPopup.isEmpty shouldBe selectedData.isEmpty
selectedData.foreach { data =>
assertComponent(editPanel.get, SystemEditPanel(), { ppProps: SystemEditPanelProps =>
inside(ppProps) { case SystemEditPanelProps(readOnly, initialData, requestFocus, _, _) =>
assertComponent(editPanel.get, SystemEditPanel) {
case SystemEditPanelProps(readOnly, initialData, requestFocus, _, _) =>
readOnly shouldBe true
initialData shouldBe data
requestFocus shouldBe false
}
})
assertComponent(editPopup.get, SystemEditPopup(), { ppProps: SystemEditPopupProps =>
inside(ppProps) { case SystemEditPopupProps(show, title, initialData, _, _) =>
}
assertComponent(editPopup.get, SystemEditPopup) {
case SystemEditPopupProps(show, title, initialData, _, _) =>
show shouldBe props.state.showEditPopup
title shouldBe "Edit Application"
initialData shouldBe data
}
})
}
}
Succeeded
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -201,25 +201,23 @@ class SystemGroupPanelSpec extends TestSpec {
def assertComponents(createPopup: ComponentInstance,
editPopup: Option[ComponentInstance]): Assertion = {

assertComponent(createPopup, InputPopup(), { ppProps: InputPopupProps =>
inside(ppProps) { case InputPopupProps(show, message, _, _, placeholder, initialValue) =>
assertComponent(createPopup, InputPopup) {
case InputPopupProps(show, message, _, _, placeholder, initialValue) =>
show shouldBe props.state.showCreatePopup
message shouldBe "Enter Environment name:"
placeholder shouldBe None
initialValue shouldBe "New Environment"
}
})
}

editPopup.isEmpty shouldBe selectedData.isEmpty
selectedData.foreach { data =>
assertComponent(editPopup.get, InputPopup(), { ppProps: InputPopupProps =>
inside(ppProps) { case InputPopupProps(show, message, _, _, placeholder, initialValue) =>
assertComponent(editPopup.get, InputPopup) {
case InputPopupProps(show, message, _, _, placeholder, initialValue) =>
show shouldBe props.state.showEditPopup
message shouldBe "Enter new Environment name:"
placeholder shouldBe None
initialValue shouldBe data.name
}
})
}
}
Succeeded
}
Expand Down
Loading

0 comments on commit 1bae61a

Please sign in to comment.