mirror of
https://github.com/mas-cli/mas
synced 2024-11-28 06:20:35 +00:00
d413d8cfa1
Move MasKitTests module to masTests. Rename MasKit enum as Mas. Upgrade swift-tools-version from 5.3 to 5.6.1. swift-tools-version 5.5+ is necessary to allow test code to import executable target code, to allow MasKit library code to be moved into the mas executable. Upgrade to swift-tools-version to 5.6.1 instead of to 5.5 because they support all the same macOS versions. Standardize comments. Signed-off-by: Ross Goldberg <484615+rgoldberg@users.noreply.github.com>
32 lines
1 KiB
Swift
32 lines
1 KiB
Swift
//
|
|
// ResultPredicates.swift
|
|
// masTests
|
|
//
|
|
// Created by Ben Chatelain on 12/27/18.
|
|
// Copyright © 2018 mas-cli. All rights reserved.
|
|
//
|
|
|
|
import Nimble
|
|
|
|
@testable import mas
|
|
|
|
/// Nimble predicate for result enum success case, no associated value
|
|
func beSuccess() -> Predicate<Result<Void, MASError>> {
|
|
Predicate.define("be <success>") { expression, message in
|
|
if case .success = try expression.evaluate() {
|
|
return PredicateResult(status: .matches, message: message)
|
|
}
|
|
return PredicateResult(status: .fail, message: message)
|
|
}
|
|
}
|
|
|
|
/// Nimble predicate for result enum failure with associated error
|
|
func beFailure(test: @escaping (MASError) -> Void = { _ in }) -> Predicate<Result<Void, MASError>> {
|
|
Predicate.define("be <failure>") { expression, message in
|
|
if case .failure(let error) = try expression.evaluate() {
|
|
test(error)
|
|
return PredicateResult(status: .matches, message: message)
|
|
}
|
|
return PredicateResult(status: .fail, message: message)
|
|
}
|
|
}
|