Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -1266,19 +1266,19 @@ Note: This matcher allows you to chain any number of matchers together. This pro
// passes if .succeeded is returned from the closure
expect {
guard case .enumCaseWithAssociatedValueThatIDontCareAbout = actual else {
return .failed(reason: "wrong enum case")
return { .failed(reason: "wrong enum case") }
}

return .succeeded
return { .succeeded }
}.to(succeed())

// passes if .failed is returned from the closure
expect {
guard case .enumCaseWithAssociatedValueThatIDontCareAbout = actual else {
return .failed(reason: "wrong enum case")
return { .failed(reason: "wrong enum case") }
}

return .succeeded
return { .succeeded }
}.notTo(succeed())
```

Expand Down
33 changes: 22 additions & 11 deletions Tests/NimbleTests/Matchers/ToSucceedTest.swift
Original file line number Diff line number Diff line change
Expand Up @@ -3,28 +3,39 @@ import Nimble

final class ToSucceedTest: XCTestCase {
func testToSucceed() {
expect({
return .succeeded
}).to(succeed())
expect {
let result: Result<Bool, Error> = .success(true)

switch result {
case .success:
return { .succeeded }
default:
return { .failed(reason: "") }
}
}.to(succeed())

expect {
.succeeded
}.to(succeed())

expect({
return .failed(reason: "")
}).toNot(succeed())
expect {
.failed(reason: "")
} .toNot(succeed())

failsWithErrorMessageForNil("expected a closure, got <nil>") {
expect(nil as (() -> ToSucceedResult)?).to(succeed())
}

failsWithErrorMessage("expected to succeed, got <failed> because <something went wrong>") {
expect({
expect {
.failed(reason: "something went wrong")
}).to(succeed())
} .to(succeed())
}

failsWithErrorMessage("expected to not succeed, got <succeeded>") {
expect({
return .succeeded
}).toNot(succeed())
expect {
.succeeded
} .toNot(succeed())
}
}
}