mirror of
https://github.com/pointfreeco/swift-composable-architecture.git
synced 2025-12-20 09:11:33 +01:00
* Merge Test Support Module An attempt to fix #70. * Remove import * Update README * Assertion failure * Cleanup * Add NB * Revert format change * Update Sources/ComposableArchitecture/TestSupport/TestStore.swift * TicTacToe fixes * Hide test store in debug flag Co-authored-by: Brandon Williams <mbw234@gmail.com>
84 lines
2.1 KiB
Swift
84 lines
2.1 KiB
Swift
import ComposableArchitecture
|
|
import GameCore
|
|
import XCTest
|
|
|
|
class GameSwiftUITests: XCTestCase {
|
|
let store = TestStore(
|
|
initialState: GameState(
|
|
oPlayerName: "Blob Jr.",
|
|
xPlayerName: "Blob Sr."
|
|
),
|
|
reducer: gameReducer,
|
|
environment: GameEnvironment()
|
|
)
|
|
|
|
func testFlow_Winner_Quit() {
|
|
self.store.assert(
|
|
.send(.cellTapped(row: 0, column: 0)) {
|
|
$0.board[0][0] = .x
|
|
$0.currentPlayer = .o
|
|
},
|
|
.send(.cellTapped(row: 2, column: 1)) {
|
|
$0.board[2][1] = .o
|
|
$0.currentPlayer = .x
|
|
},
|
|
.send(.cellTapped(row: 1, column: 0)) {
|
|
$0.board[1][0] = .x
|
|
$0.currentPlayer = .o
|
|
},
|
|
.send(.cellTapped(row: 1, column: 1)) {
|
|
$0.board[1][1] = .o
|
|
$0.currentPlayer = .x
|
|
},
|
|
.send(.cellTapped(row: 2, column: 0)) {
|
|
$0.board[2][0] = .x
|
|
},
|
|
.send(.quitButtonTapped)
|
|
)
|
|
}
|
|
|
|
func testFlow_Tie() {
|
|
self.store.assert(
|
|
.send(.cellTapped(row: 0, column: 0)) {
|
|
$0.board[0][0] = .x
|
|
$0.currentPlayer = .o
|
|
},
|
|
.send(.cellTapped(row: 2, column: 2)) {
|
|
$0.board[2][2] = .o
|
|
$0.currentPlayer = .x
|
|
},
|
|
.send(.cellTapped(row: 1, column: 0)) {
|
|
$0.board[1][0] = .x
|
|
$0.currentPlayer = .o
|
|
},
|
|
.send(.cellTapped(row: 2, column: 0)) {
|
|
$0.board[2][0] = .o
|
|
$0.currentPlayer = .x
|
|
},
|
|
.send(.cellTapped(row: 2, column: 1)) {
|
|
$0.board[2][1] = .x
|
|
$0.currentPlayer = .o
|
|
},
|
|
.send(.cellTapped(row: 1, column: 2)) {
|
|
$0.board[1][2] = .o
|
|
$0.currentPlayer = .x
|
|
},
|
|
.send(.cellTapped(row: 0, column: 2)) {
|
|
$0.board[0][2] = .x
|
|
$0.currentPlayer = .o
|
|
},
|
|
.send(.cellTapped(row: 0, column: 1)) {
|
|
$0.board[0][1] = .o
|
|
$0.currentPlayer = .x
|
|
},
|
|
.send(.cellTapped(row: 1, column: 1)) {
|
|
$0.board[1][1] = .x
|
|
$0.currentPlayer = .o
|
|
},
|
|
.send(.playAgainButtonTapped) {
|
|
$0 = GameState(oPlayerName: "Blob Jr.", xPlayerName: "Blob Sr.")
|
|
}
|
|
)
|
|
}
|
|
}
|