From 1616fd4073c570f08906456b77d3a3cd8acdff68 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=B2=20=E7=BF=94=E6=96=B0?= Date: Sat, 13 Nov 2021 01:45:30 +0900 Subject: [PATCH 01/14] Setup project with Package.swift --- Package.swift | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 Package.swift diff --git a/Package.swift b/Package.swift new file mode 100644 index 0000000..b93237d --- /dev/null +++ b/Package.swift @@ -0,0 +1,29 @@ +// swift-tools-version:5.3 +// The swift-tools-version declares the minimum version of Swift required to build this package. + +import PackageDescription + +let package = Package( + name: "DangerSwiftShoki", + products: [ + // Products define the executables and libraries produced by a package, and make them visible to other packages. + .library( + name: "DangerSwiftShoki", + targets: ["DangerSwiftShoki"]), + ], + dependencies: [ + // Dependencies declare other packages that this package depends on. + // .package(url: /* package url */, from: "1.0.0"), + .package(url: "https://github.com/danger/swift.git", from: "3.0.0"), + ], + targets: [ + // Targets are the basic building blocks of a package. A target can define a module or a test suite. + // Targets can depend on other targets in this package, and on products in packages which this package depends on. + .target( + name: "DangerSwiftShoki", + dependencies: [.product(name: "Danger", package: "swift")]), + .testTarget( + name: "DangerSwiftShokiTests", + dependencies: ["DangerSwiftShoki"]), + ] +) From 7c7b0eb135bdefd852d224a65f1c7fe44b6ce954 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=B2=20=E7=BF=94=E6=96=B0?= Date: Sat, 13 Nov 2021 01:47:41 +0900 Subject: [PATCH 02/14] Resolve project --- .../contents.xcworkspacedata | 7 +++ Package.resolved | 52 +++++++++++++++++++ 2 files changed, 59 insertions(+) create mode 100644 .swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata create mode 100644 Package.resolved diff --git a/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata b/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/Package.resolved b/Package.resolved new file mode 100644 index 0000000..051fc2a --- /dev/null +++ b/Package.resolved @@ -0,0 +1,52 @@ +{ + "object": { + "pins": [ + { + "package": "Logger", + "repositoryURL": "https://github.com/shibapm/Logger", + "state": { + "branch": null, + "revision": "53c3ecca5abe8cf46697e33901ee774236d94cce", + "version": "0.2.3" + } + }, + { + "package": "OctoKit", + "repositoryURL": "https://github.com/nerdishbynature/octokit.swift", + "state": { + "branch": null, + "revision": "9521cdff919053868ab13cd08a228f7bc1bde2a9", + "version": "0.11.0" + } + }, + { + "package": "RequestKit", + "repositoryURL": "https://github.com/nerdishbynature/RequestKit.git", + "state": { + "branch": null, + "revision": "fd5e9e99aada7432170366c9e95967011ce13bad", + "version": "2.4.0" + } + }, + { + "package": "danger-swift", + "repositoryURL": "https://github.com/danger/swift.git", + "state": { + "branch": null, + "revision": "15819a13a5e8e154acdc2eeec5f94ed37369d7cc", + "version": "3.12.2" + } + }, + { + "package": "Version", + "repositoryURL": "https://github.com/mxcl/Version", + "state": { + "branch": null, + "revision": "200046c93f6d5d78a6d72bfd9c0b27a95e9c0a2b", + "version": "1.2.0" + } + } + ] + }, + "version": 1 +} From 4b9f22dacfa90b2e960228777706ad9c6781e269 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=B2=20=E7=BF=94=E6=96=B0?= Date: Sat, 13 Nov 2021 01:48:06 +0900 Subject: [PATCH 03/14] Add basic implementations of CheckResult --- Sources/DangerSwiftShoki/CheckResult.swift | 95 ++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 Sources/DangerSwiftShoki/CheckResult.swift diff --git a/Sources/DangerSwiftShoki/CheckResult.swift b/Sources/DangerSwiftShoki/CheckResult.swift new file mode 100644 index 0000000..bf7a331 --- /dev/null +++ b/Sources/DangerSwiftShoki/CheckResult.swift @@ -0,0 +1,95 @@ +// +// CheckResult.swift +// +// +// Created by 史 翔新 on 2020/07/11. +// + +public struct CheckResult { + + public enum Result { + + case good + case acceptable + case rejected + + var markdownSymbol: String { + switch self { + case .good: + return ":tada:" + + case .acceptable: + return ":thinking:" + + case .rejected: + return ":no_good:" + } + } + + } + + typealias Message = (content: String, result: Result) + + public let title: String + + private var messages: [Message] = [] + + private var todos: [String] = [] + + public var warningsCount: Int { + messages.filter({ $0.result == .acceptable }).count + } + + public var errorsCount: Int { + messages.filter({ $0.result == .rejected }).count + } + + public init(title: String) { + self.title = title + } + + public mutating func askReviewer(to taskToDo: String) { + + todos.append(taskToDo) + + } + + public mutating func check(_ item: String, execution: () -> Result) { + + let result = execution() + messages.append((item, result)) + + } + + public var markdownTitle: String { + + "## " + title + + } + + public var markdownMessage: String { + + let chartHeader = """ + Checking Item | Result + | ---| --- | + + """ + let chartContent = messages.map { + "\($0.content) | \($0.result.markdownSymbol)" + } .joined(separator: "\n") + + return chartHeader + chartContent + + } + + public var markdownTodos: String { + + let todoContent = todos.map { + "- [ ] \($0)" + } + + return todoContent.joined(separator: "\n") + + } + +} From 01a32ea883243e56d1ef7c49fb23bbfafced21c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=B2=20=E7=BF=94=E6=96=B0?= Date: Sat, 13 Nov 2021 01:48:24 +0900 Subject: [PATCH 04/14] Add tests for CheckResult --- .../CheckResultTests.swift | 111 ++++++++++++++++++ 1 file changed, 111 insertions(+) create mode 100644 Tests/DangerSwiftShokiTests/CheckResultTests.swift diff --git a/Tests/DangerSwiftShokiTests/CheckResultTests.swift b/Tests/DangerSwiftShokiTests/CheckResultTests.swift new file mode 100644 index 0000000..e4c161a --- /dev/null +++ b/Tests/DangerSwiftShokiTests/CheckResultTests.swift @@ -0,0 +1,111 @@ +import XCTest +@testable import DangerSwiftShoki + +final class CheckResultTests: XCTestCase { + + func test_checkResultLife() { + + var checkResult = CheckResult(title: "Test Check") + + XCTContext.runActivity(named: "Initialize CheckResult") { _ in + XCTAssertEqual(checkResult.title, "Test Check") + XCTAssertEqual(checkResult.warningsCount, 0) + XCTAssertEqual(checkResult.errorsCount, 0) + XCTAssertEqual(checkResult.markdownTitle, "## Test Check") + XCTAssertEqual(checkResult.markdownMessage, """ + Checking Item | Result + | ---| --- | + + """) + XCTAssertEqual(checkResult.markdownTodos, """ + """) + } + + XCTContext.runActivity(named: "Add Check Item with Good Result") { _ in + checkResult.check("Good Check", execution: { .good }) + XCTAssertEqual(checkResult.title, "Test Check") + XCTAssertEqual(checkResult.warningsCount, 0) + XCTAssertEqual(checkResult.errorsCount, 0) + XCTAssertEqual(checkResult.markdownTitle, "## Test Check") + XCTAssertEqual(checkResult.markdownMessage, """ + Checking Item | Result + | ---| --- | + Good Check | :tada: + """) + XCTAssertEqual(checkResult.markdownTodos, """ + """) + } + + XCTContext.runActivity(named: "Add Check Item with Acceptable Result") { _ in + checkResult.check("Acceptable Check", execution: { .acceptable }) + XCTAssertEqual(checkResult.title, "Test Check") + XCTAssertEqual(checkResult.warningsCount, 1) + XCTAssertEqual(checkResult.errorsCount, 0) + XCTAssertEqual(checkResult.markdownTitle, "## Test Check") + XCTAssertEqual(checkResult.markdownMessage, """ + Checking Item | Result + | ---| --- | + Good Check | :tada: + Acceptable Check | :thinking: + """) + XCTAssertEqual(checkResult.markdownTodos, """ + """) + } + + XCTContext.runActivity(named: "Add Check Item with Rejected Result") { _ in + checkResult.check("Rejected Check", execution: { .rejected }) + XCTAssertEqual(checkResult.title, "Test Check") + XCTAssertEqual(checkResult.warningsCount, 1) + XCTAssertEqual(checkResult.errorsCount, 1) + XCTAssertEqual(checkResult.markdownTitle, "## Test Check") + XCTAssertEqual(checkResult.markdownMessage, """ + Checking Item | Result + | ---| --- | + Good Check | :tada: + Acceptable Check | :thinking: + Rejected Check | :no_good: + """) + XCTAssertEqual(checkResult.markdownTodos, """ + """) + } + + XCTContext.runActivity(named: "Add A Todo Item") { _ in + checkResult.askReviewer(to: "Do Something") + XCTAssertEqual(checkResult.title, "Test Check") + XCTAssertEqual(checkResult.warningsCount, 1) + XCTAssertEqual(checkResult.errorsCount, 1) + XCTAssertEqual(checkResult.markdownTitle, "## Test Check") + XCTAssertEqual(checkResult.markdownMessage, """ + Checking Item | Result + | ---| --- | + Good Check | :tada: + Acceptable Check | :thinking: + Rejected Check | :no_good: + """) + XCTAssertEqual(checkResult.markdownTodos, """ + - [ ] Do Something + """) + } + + XCTContext.runActivity(named: "Add Another Todo Item") { _ in + checkResult.askReviewer(to: "Do Another Thing") + XCTAssertEqual(checkResult.title, "Test Check") + XCTAssertEqual(checkResult.warningsCount, 1) + XCTAssertEqual(checkResult.errorsCount, 1) + XCTAssertEqual(checkResult.markdownTitle, "## Test Check") + XCTAssertEqual(checkResult.markdownMessage, """ + Checking Item | Result + | ---| --- | + Good Check | :tada: + Acceptable Check | :thinking: + Rejected Check | :no_good: + """) + XCTAssertEqual(checkResult.markdownTodos, """ + - [ ] Do Something + - [ ] Do Another Thing + """) + } + + } + +} From f377c9969ea91260ce5878aec3ec002bb6a810b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=B2=20=E7=BF=94=E6=96=B0?= Date: Sat, 13 Nov 2021 01:49:38 +0900 Subject: [PATCH 05/14] Add a reporting method for DangerDSL --- Sources/DangerSwiftShoki/DangerDSL+.swift | 31 +++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 Sources/DangerSwiftShoki/DangerDSL+.swift diff --git a/Sources/DangerSwiftShoki/DangerDSL+.swift b/Sources/DangerSwiftShoki/DangerDSL+.swift new file mode 100644 index 0000000..68a7f01 --- /dev/null +++ b/Sources/DangerSwiftShoki/DangerDSL+.swift @@ -0,0 +1,31 @@ +// +// DangerDSL+.swift +// +// +// Created by 史 翔新 on 2021/11/13. +// + +import Danger + +extension DangerDSL { + + public func report(_ result: CheckResult) { + + markdown(result.markdownTitle) + + if !result.markdownMessage.isEmpty { + markdown(result.markdownMessage) + + } + + if !result.markdownTodos.isEmpty { + markdown(result.markdownTodos) + } + + if result.warningsCount == 0 && result.errorsCount == 0 { + message("Good Job :white_flower:") + } + + } + +} From 19d17801f22b91130c9b55994336c7ab6a989c4f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=B2=20=E7=BF=94=E6=96=B0?= Date: Sat, 13 Nov 2021 01:49:53 +0900 Subject: [PATCH 06/14] Update README --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index e698aa6..7697066 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,3 @@ -# DangerSwiftYUMEMI -社内向けDangerSwift用のプラグイン +# DangerSwiftShoki + +A danger-swift plug-in to describe danger checking results with markdown style From b58e61e1a6d2d7103c0ac7b519ae2f0cc5b6762a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=B2=20=E7=BF=94=E6=96=B0?= Date: Tue, 16 Nov 2021 16:03:50 +0900 Subject: [PATCH 07/14] Make a new Shoki type to report CheckResult instead of using DangerDSL directly --- Sources/DangerSwiftShoki/DangerDSL+.swift | 20 ++---------- Sources/DangerSwiftShoki/Shoki.swift | 38 +++++++++++++++++++++++ 2 files changed, 41 insertions(+), 17 deletions(-) create mode 100644 Sources/DangerSwiftShoki/Shoki.swift diff --git a/Sources/DangerSwiftShoki/DangerDSL+.swift b/Sources/DangerSwiftShoki/DangerDSL+.swift index 68a7f01..80849f4 100644 --- a/Sources/DangerSwiftShoki/DangerDSL+.swift +++ b/Sources/DangerSwiftShoki/DangerDSL+.swift @@ -9,23 +9,9 @@ import Danger extension DangerDSL { - public func report(_ result: CheckResult) { - - markdown(result.markdownTitle) - - if !result.markdownMessage.isEmpty { - markdown(result.markdownMessage) - - } - - if !result.markdownTodos.isEmpty { - markdown(result.markdownTodos) - } - - if result.warningsCount == 0 && result.errorsCount == 0 { - message("Good Job :white_flower:") - } - + public var shoki: Shoki { + return .init(markdownResolver: { markdown($0) }, + messageResolver: { message($0) }) } } diff --git a/Sources/DangerSwiftShoki/Shoki.swift b/Sources/DangerSwiftShoki/Shoki.swift new file mode 100644 index 0000000..84e6e1b --- /dev/null +++ b/Sources/DangerSwiftShoki/Shoki.swift @@ -0,0 +1,38 @@ +// +// Shoki.swift +// +// +// Created by 史 翔新 on 2021/11/16. +// + +import Danger + +public struct Shoki { + + let markdownResolver: (String) -> Void + let messageResolver: (String) -> Void + +} + +extension Shoki { + + public func report(_ result: CheckResult) { + + markdownResolver(result.markdownTitle) + + if !result.markdownMessage.isEmpty { + markdownResolver(result.markdownMessage) + + } + + if !result.markdownTodos.isEmpty { + markdownResolver(result.markdownTodos) + } + + if result.warningsCount == 0 && result.errorsCount == 0 { + messageResolver("Good Job :white_flower:") + } + + } + +} From 10d142f7853fbc8cdb5fadc06668821f5840ab9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=B2=20=E7=BF=94=E6=96=B0?= Date: Tue, 16 Nov 2021 16:04:28 +0900 Subject: [PATCH 08/14] Add tests for Shoki --- Tests/DangerSwiftShokiTests/ShokiTests.swift | 127 +++++++++++++++++++ 1 file changed, 127 insertions(+) create mode 100644 Tests/DangerSwiftShokiTests/ShokiTests.swift diff --git a/Tests/DangerSwiftShokiTests/ShokiTests.swift b/Tests/DangerSwiftShokiTests/ShokiTests.swift new file mode 100644 index 0000000..85403ed --- /dev/null +++ b/Tests/DangerSwiftShokiTests/ShokiTests.swift @@ -0,0 +1,127 @@ +// +// ShokiTests.swift +// +// +// Created by 史 翔新 on 2021/11/16. +// + +import XCTest +@testable import DangerSwiftShoki + +final class ShokiTests: XCTestCase { + + private typealias ExpectedString = (line: UInt, input: String, expectation: XCTestExpectation) + private func makeResolver(_ expectations: [ExpectedString]) -> (String) -> Void { + var expectations = expectations + return { + guard let currentExpectation = expectations.first else { + XCTFail("Calling resolver more times than expected from: \($0).") + return + } + switch $0 { + case currentExpectation.input: + currentExpectation.expectation.fulfill() + + case let invalid: + XCTFail("Invalid call from: \(invalid)", line: currentExpectation.line) + } + expectations.removeFirst() + } + } + + func test_report() { + + XCTContext.runActivity(named: "Good CheckResult") { _ in + + let inputResult = { () -> CheckResult in + var result = CheckResult(title: "Good Result") + result.check("Good Check", execution: { .good }) + result.askReviewer(to: "Good Todo") + return result + }() + + let titleExpectation = expectation(description: "Title") + let messageExpectation = expectation(description: "Message") + let todosExpectation = expectation(description: "Todos") + let rewardExpectation = expectation(description: "Reward") + + let expectedTitle = "## Good Result" + let expectedMessage = """ + Checking Item | Result + | ---| --- | + Good Check | :tada: + """ + let expectedTodos = "- [ ] Good Todo" + let expectedReward = "Good Job :white_flower:" + + let markdownResolver = makeResolver([ + (#line, expectedTitle, titleExpectation), + (#line, expectedMessage, messageExpectation), + (#line, expectedTodos, todosExpectation), + ]) + let messageResolver = makeResolver([ + (#line, expectedReward, rewardExpectation) + ]) + let shoki = Shoki(markdownResolver: markdownResolver, messageResolver: messageResolver) + + shoki.report(inputResult) + wait(for: [titleExpectation, messageExpectation, todosExpectation, rewardExpectation], timeout: 0, enforceOrder: true) + + } + + XCTContext.runActivity(named: "Empty CheckResult") { _ in + + let inputResult = CheckResult(title: "Empty Result") + + let titleExpectation = expectation(description: "Title") + let rewardExpectation = expectation(description: "Reward") + + let expectedTitle = "## Empty Result" + let expectedReward = "Good Job :white_flower:" + + let markdownResolver = makeResolver([ + (#line, expectedTitle, titleExpectation), + ]) + let messageResolver = makeResolver([ + (#line, expectedReward, rewardExpectation), + ]) + let shoki = Shoki(markdownResolver: markdownResolver, messageResolver: messageResolver) + + shoki.report(inputResult) + wait(for: [titleExpectation, rewardExpectation], timeout: 0, enforceOrder: true) + + } + + XCTContext.runActivity(named: "Rejected Result") { _ in + + let inputResult = { () -> CheckResult in + var result = CheckResult(title: "Rejected Result") + result.check("Rejected Check", execution: { .rejected }) + return result + }() + + let titleExpectation = expectation(description: "Title") + let messageExpectation = expectation(description: "Message") + + let expectedTitle = "## Rejected Result" + let expectedMessage = """ + Checking Item | Result + | ---| --- | + Rejected Check | :no_good: + """ + + let markdownResolver = makeResolver([ + (#line, expectedTitle, titleExpectation), + (#line, expectedMessage, messageExpectation), + ]) + let messageResolver = makeResolver([]) + let shoki = Shoki(markdownResolver: markdownResolver, messageResolver: messageResolver) + + shoki.report(inputResult) + wait(for: [titleExpectation, messageExpectation], timeout: 0, enforceOrder: true) + + } + + } + +} From beee0c70a175a5a94a9d88604554266c269a81db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=B2=20=E7=BF=94=E6=96=B0?= Date: Tue, 16 Nov 2021 16:04:58 +0900 Subject: [PATCH 09/14] Fix unexpected output when messages or todos are empty --- Sources/DangerSwiftShoki/CheckResult.swift | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Sources/DangerSwiftShoki/CheckResult.swift b/Sources/DangerSwiftShoki/CheckResult.swift index bf7a331..d53f1bb 100644 --- a/Sources/DangerSwiftShoki/CheckResult.swift +++ b/Sources/DangerSwiftShoki/CheckResult.swift @@ -69,6 +69,10 @@ public struct CheckResult { public var markdownMessage: String { + guard !messages.isEmpty else { + return "" + } + let chartHeader = """ Checking Item | Result | ---| --- | @@ -84,6 +88,10 @@ public struct CheckResult { public var markdownTodos: String { + guard !todos.isEmpty else { + return "" + } + let todoContent = todos.map { "- [ ] \($0)" } From 43b8a2436fa7ad0d8ad3a8d880964c49f3cf91e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=B2=20=E7=BF=94=E6=96=B0?= Date: Tue, 16 Nov 2021 16:28:24 +0900 Subject: [PATCH 10/14] Add markdown and message method in Shoki for more convenient use --- Sources/DangerSwiftShoki/Shoki.swift | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/Sources/DangerSwiftShoki/Shoki.swift b/Sources/DangerSwiftShoki/Shoki.swift index 84e6e1b..d1c95e7 100644 --- a/Sources/DangerSwiftShoki/Shoki.swift +++ b/Sources/DangerSwiftShoki/Shoki.swift @@ -14,23 +14,35 @@ public struct Shoki { } +extension Shoki { + + func markdown(_ message: String) { + markdownResolver(message) + } + + func message(_ message: String) { + messageResolver(message) + } + +} + extension Shoki { public func report(_ result: CheckResult) { - markdownResolver(result.markdownTitle) + markdown(result.markdownTitle) if !result.markdownMessage.isEmpty { - markdownResolver(result.markdownMessage) + markdown(result.markdownMessage) } if !result.markdownTodos.isEmpty { - markdownResolver(result.markdownTodos) + markdown(result.markdownTodos) } if result.warningsCount == 0 && result.errorsCount == 0 { - messageResolver("Good Job :white_flower:") + message("Good Job :white_flower:") } } From aa04b8f74afe3ed6bf7c2b8218aeaea81e6df37c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=B2=20=E7=BF=94=E6=96=B0?= Date: Tue, 16 Nov 2021 16:38:00 +0900 Subject: [PATCH 11/14] Rename Resolvers to Executors which better fits the character, and hide them from instance calls --- Sources/DangerSwiftShoki/Shoki.swift | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/Sources/DangerSwiftShoki/Shoki.swift b/Sources/DangerSwiftShoki/Shoki.swift index d1c95e7..a771d32 100644 --- a/Sources/DangerSwiftShoki/Shoki.swift +++ b/Sources/DangerSwiftShoki/Shoki.swift @@ -9,19 +9,27 @@ import Danger public struct Shoki { - let markdownResolver: (String) -> Void - let messageResolver: (String) -> Void + private let markdownExecutor: (String) -> Void + private let messageExecutor: (String) -> Void + + init( + markdownExecutor: @escaping (String) -> Void, + messageExecutor: @escaping (String) -> Void + ) { + self.markdownExecutor = markdownExecutor + self.messageExecutor = messageExecutor + } } extension Shoki { func markdown(_ message: String) { - markdownResolver(message) + markdownExecutor(message) } func message(_ message: String) { - messageResolver(message) + messageExecutor(message) } } From 6bb3667785839acf5b855cf6f4dc93135827b0ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=B2=20=E7=BF=94=E6=96=B0?= Date: Tue, 16 Nov 2021 16:38:25 +0900 Subject: [PATCH 12/14] Update Shoki initialization in DangerDSL --- Sources/DangerSwiftShoki/DangerDSL+.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Sources/DangerSwiftShoki/DangerDSL+.swift b/Sources/DangerSwiftShoki/DangerDSL+.swift index 80849f4..6c174f3 100644 --- a/Sources/DangerSwiftShoki/DangerDSL+.swift +++ b/Sources/DangerSwiftShoki/DangerDSL+.swift @@ -10,8 +10,8 @@ import Danger extension DangerDSL { public var shoki: Shoki { - return .init(markdownResolver: { markdown($0) }, - messageResolver: { message($0) }) + return .init(markdownExecutor: { markdown($0) }, + messageExecutor: { message($0) }) } } From 2a0004a38af02e6970e97ed1d4b73928d2a67a18 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=B2=20=E7=BF=94=E6=96=B0?= Date: Tue, 16 Nov 2021 16:38:35 +0900 Subject: [PATCH 13/14] Fix tests --- .../CheckResultTests.swift | 3 --- Tests/DangerSwiftShokiTests/ShokiTests.swift | 20 +++++++++---------- 2 files changed, 10 insertions(+), 13 deletions(-) diff --git a/Tests/DangerSwiftShokiTests/CheckResultTests.swift b/Tests/DangerSwiftShokiTests/CheckResultTests.swift index e4c161a..57a7c79 100644 --- a/Tests/DangerSwiftShokiTests/CheckResultTests.swift +++ b/Tests/DangerSwiftShokiTests/CheckResultTests.swift @@ -13,9 +13,6 @@ final class CheckResultTests: XCTestCase { XCTAssertEqual(checkResult.errorsCount, 0) XCTAssertEqual(checkResult.markdownTitle, "## Test Check") XCTAssertEqual(checkResult.markdownMessage, """ - Checking Item | Result - | ---| --- | - """) XCTAssertEqual(checkResult.markdownTodos, """ """) diff --git a/Tests/DangerSwiftShokiTests/ShokiTests.swift b/Tests/DangerSwiftShokiTests/ShokiTests.swift index 85403ed..7f31e6b 100644 --- a/Tests/DangerSwiftShokiTests/ShokiTests.swift +++ b/Tests/DangerSwiftShokiTests/ShokiTests.swift @@ -11,7 +11,7 @@ import XCTest final class ShokiTests: XCTestCase { private typealias ExpectedString = (line: UInt, input: String, expectation: XCTestExpectation) - private func makeResolver(_ expectations: [ExpectedString]) -> (String) -> Void { + private func makeExecutor(_ expectations: [ExpectedString]) -> (String) -> Void { var expectations = expectations return { guard let currentExpectation = expectations.first else { @@ -54,15 +54,15 @@ final class ShokiTests: XCTestCase { let expectedTodos = "- [ ] Good Todo" let expectedReward = "Good Job :white_flower:" - let markdownResolver = makeResolver([ + let markdownExecutor = makeExecutor([ (#line, expectedTitle, titleExpectation), (#line, expectedMessage, messageExpectation), (#line, expectedTodos, todosExpectation), ]) - let messageResolver = makeResolver([ + let messageExecutor = makeExecutor([ (#line, expectedReward, rewardExpectation) ]) - let shoki = Shoki(markdownResolver: markdownResolver, messageResolver: messageResolver) + let shoki = Shoki(markdownExecutor: markdownExecutor, messageExecutor: messageExecutor) shoki.report(inputResult) wait(for: [titleExpectation, messageExpectation, todosExpectation, rewardExpectation], timeout: 0, enforceOrder: true) @@ -79,13 +79,13 @@ final class ShokiTests: XCTestCase { let expectedTitle = "## Empty Result" let expectedReward = "Good Job :white_flower:" - let markdownResolver = makeResolver([ + let markdownExecutor = makeExecutor([ (#line, expectedTitle, titleExpectation), ]) - let messageResolver = makeResolver([ + let messageExecutor = makeExecutor([ (#line, expectedReward, rewardExpectation), ]) - let shoki = Shoki(markdownResolver: markdownResolver, messageResolver: messageResolver) + let shoki = Shoki(markdownExecutor: markdownExecutor, messageExecutor: messageExecutor) shoki.report(inputResult) wait(for: [titleExpectation, rewardExpectation], timeout: 0, enforceOrder: true) @@ -110,12 +110,12 @@ final class ShokiTests: XCTestCase { Rejected Check | :no_good: """ - let markdownResolver = makeResolver([ + let markdownExecutor = makeExecutor([ (#line, expectedTitle, titleExpectation), (#line, expectedMessage, messageExpectation), ]) - let messageResolver = makeResolver([]) - let shoki = Shoki(markdownResolver: markdownResolver, messageResolver: messageResolver) + let messageExecutor = makeExecutor([]) + let shoki = Shoki(markdownExecutor: markdownExecutor, messageExecutor: messageExecutor) shoki.report(inputResult) wait(for: [titleExpectation, messageExpectation], timeout: 0, enforceOrder: true) From b72c28bb075abdfc8c1ff6334a4d5ed7f9bda0a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=B2=20=E7=BF=94=E6=96=B0?= Date: Wed, 17 Nov 2021 17:11:03 +0900 Subject: [PATCH 14/14] Fix danger-swift dependency declaration --- Package.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Package.swift b/Package.swift index b93237d..e2e84d0 100644 --- a/Package.swift +++ b/Package.swift @@ -14,14 +14,14 @@ let package = Package( dependencies: [ // Dependencies declare other packages that this package depends on. // .package(url: /* package url */, from: "1.0.0"), - .package(url: "https://github.com/danger/swift.git", from: "3.0.0"), + .package(name: "danger-swift", url: "https://github.com/danger/swift.git", from: "3.0.0"), ], targets: [ // Targets are the basic building blocks of a package. A target can define a module or a test suite. // Targets can depend on other targets in this package, and on products in packages which this package depends on. .target( name: "DangerSwiftShoki", - dependencies: [.product(name: "Danger", package: "swift")]), + dependencies: [.product(name: "Danger", package: "danger-swift")]), .testTarget( name: "DangerSwiftShokiTests", dependencies: ["DangerSwiftShoki"]),