Skip to content

Commit

Permalink
WIP e2e test. Need to disable achievement popups and stats button at …
Browse files Browse the repository at this point in the history
…least
  • Loading branch information
alyssaruth committed Mar 6, 2024
1 parent da87fa5 commit 1e9c83f
Show file tree
Hide file tree
Showing 4 changed files with 83 additions and 1 deletion.
2 changes: 2 additions & 0 deletions src/main/kotlin/dartzee/bean/AbstractPlayerSelector.kt
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,8 @@ abstract class AbstractPlayerSelector<S : ScrollTable> :
protected fun render() {
layout = MigLayout("al center center", "[452px][100px][452px]", "[407px]")

tablePlayersToSelectFrom.name = "TableUnselected"

val panelMovementOptions = JPanel()
add(tablePlayersToSelectFrom, "cell 0 0,alignx left,growy")
panelMovementOptions.minimumSize = Dimension(50, 10)
Expand Down
4 changes: 4 additions & 0 deletions src/test/kotlin/dartzee/e2e/GameHelpers.kt
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,10 @@ fun DartsGamePanel<*, *>.throwHumanDart(score: Int, segmentType: SegmentType) {
getChild<GameplayDartboard>().dartThrown(computedPt)
}

fun DartsGamePanel<*, *>.confirmRound() {
clickChild<JButton> { it.toolTipText == "Confirm round" }
}

fun DartsGamePanel<*, *>.awaitTurn(participant: IWrappedParticipant) {
val scorer = getChild<AbstractDartsScorer<*>> { it.participant == participant }
waitForAssertion { scorer.lblAvatar.shouldBeSelected() }
Expand Down
76 changes: 76 additions & 0 deletions src/test/kotlin/dartzee/e2e/TestPartyModeE2E.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
package dartzee.e2e

import com.github.alyssaburlton.swingtest.clickChild
import com.github.alyssaburlton.swingtest.findWindow
import com.github.alyssaburlton.swingtest.getChild
import com.github.alyssaburlton.swingtest.shouldBeVisible
import com.github.alyssaburlton.swingtest.waitForAssertion
import dartzee.bean.GameSetupPlayerSelector
import dartzee.core.bean.ScrollTable
import dartzee.helper.AbstractTest
import dartzee.helper.preparePlayers
import dartzee.`object`.SegmentType
import dartzee.screen.DartsApp
import dartzee.screen.ScreenCache
import dartzee.screen.game.DartsGamePanel
import dartzee.screen.game.DartsGameScreen
import io.kotest.matchers.nulls.shouldNotBeNull
import javax.swing.JButton
import org.junit.jupiter.api.Tag
import org.junit.jupiter.api.Test

class TestPartyModeE2E : AbstractTest() {
@Test
@Tag("e2e")
fun `E2E - Party Mode`() {
preparePlayers(2)

val app = launchApp()
app.clickChild<JButton>(text = "Utilities")
app.clickChild<JButton>(text = "Enter Party Mode")
app.clickChild<JButton>(text = "New Game")

val selector = app.getChild<GameSetupPlayerSelector>()
selector.getChild<ScrollTable>("TableUnselected").selectRow(0)
selector.clickChild<JButton>("Select")
selector.getChild<ScrollTable>("TableUnselected").selectRow(0)
selector.clickChild<JButton>("Select")

app.clickChild<JButton>(text = "Launch Game >")

waitForAssertion {
val window = findWindow<DartsGameScreen>()
window.shouldNotBeNull()
window.shouldBeVisible()
}

val gamePanel = findWindow<DartsGameScreen>()!!.getChild<DartsGamePanel<*, *>>()

// Alice - 201
gamePanel.throwHumanDart(20, SegmentType.OUTER_SINGLE)
gamePanel.throwHumanDart(20, SegmentType.TREBLE)
gamePanel.throwHumanDart(20, SegmentType.OUTER_SINGLE)
gamePanel.confirmRound()

// Bob - 256
gamePanel.throwHumanDart(19, SegmentType.OUTER_SINGLE)
gamePanel.throwHumanDart(19, SegmentType.OUTER_SINGLE)
gamePanel.throwHumanDart(7, SegmentType.INNER_SINGLE)
gamePanel.confirmRound()

// Alice - 106
gamePanel.throwHumanDart(20, SegmentType.OUTER_SINGLE)
gamePanel.throwHumanDart(20, SegmentType.TREBLE)
gamePanel.throwHumanDart(5, SegmentType.TREBLE)

// Bob -
gamePanel.throwHumanDart(19, SegmentType.TREBLE)
}

private fun launchApp(): DartsApp {
val mainScreen = ScreenCache.mainScreen
mainScreen.isVisible = true
mainScreen.init()
return mainScreen
}
}
2 changes: 1 addition & 1 deletion src/test/kotlin/dartzee/e2e/TestResignationE2E.kt
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ class TestResignationE2E : AbstractRegistryTest() {
gamePanel.throwHumanDart(20, SegmentType.OUTER_SINGLE)
gamePanel.throwHumanDart(5, SegmentType.OUTER_SINGLE)
gamePanel.throwHumanDart(1, SegmentType.OUTER_SINGLE)
gamePanel.clickChild<JButton> { it.toolTipText == "Confirm round" }
gamePanel.confirmRound()

gamePanel.awaitTurn(ptResignee)
gamePanel.clickChild<JButton>(async = true) { it.toolTipText == "Resign" }
Expand Down

0 comments on commit 1e9c83f

Please sign in to comment.