diff --git a/.github/workflows/Build.yml b/.github/workflows/Build.yml index 9fb89c4..5eb96b4 100644 --- a/.github/workflows/Build.yml +++ b/.github/workflows/Build.yml @@ -10,7 +10,7 @@ jobs: build: strategy: matrix: - platform: [macos-latest] + platform: [macos-latest, ubuntu-latest] runs-on: ${{ matrix.platform }} steps: diff --git a/README.md b/README.md index 69ca042..a73bc54 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -![Supported Platforms](https://img.shields.io/static/v1?label=Supported%20Platforms&message=iOS%20|%20macOS%20|%20tvOS%20|%20watchOS&color=red&style=flat&logo=swift&labelColor=white) ![Swift Versions](https://img.shields.io/static/v1?label=Swift&message=5.5&color=red&style=flat&logo=swift&labelColor=white) +![Supported Platforms](https://img.shields.io/static/v1?label=Supported%20Platforms&message=iOS%20|%20macOS%20|%20tvOS%20|%20watchOS%20|%20linux&color=red&style=flat&logo=swift&labelColor=white) ![Swift Versions](https://img.shields.io/static/v1?label=Swift&message=5.5&color=red&style=flat&logo=swift&labelColor=white) # AsyncValue diff --git a/Tests/AsyncValueTests/AsyncValueTests.swift b/Tests/AsyncValueTests/AsyncValueTests.swift index 6c8f991..8a89781 100644 --- a/Tests/AsyncValueTests/AsyncValueTests.swift +++ b/Tests/AsyncValueTests/AsyncValueTests.swift @@ -1,17 +1,15 @@ -import Combine import XCTest @testable import AsyncValue final class AsyncValueTests: XCTestCase { var sut: AsyncValue? - var cancellable: AnyCancellable? - + override func tearDown() { super.tearDown() sut = nil - cancellable = nil } + func test_allValues() async throws { sut = .init(wrappedValue: "Test") @@ -61,7 +59,21 @@ final class AsyncValueTests: XCTestCase { await testTask.value } - +} + +#if canImport(Combine) && canImport(SwiftUI) +import Combine +import SwiftUI + +extension AsyncValueTests { + fileprivate class TestObservableObject: ObservableObject { + var cancellable: AnyCancellable? + + @AsyncValue var myValue = "Test" { + willSet { objectWillChange.send() } + } + } + func test_observableObjectPublisher() { let sut = TestObservableObject() @@ -69,7 +81,7 @@ final class AsyncValueTests: XCTestCase { var updateCount: Int = 0 - cancellable = sut.objectWillChange.sink { + sut.cancellable = sut.objectWillChange.sink { updateCount += 1 } @@ -86,9 +98,4 @@ final class AsyncValueTests: XCTestCase { XCTAssertEqual(updateCount, 2) } } - -fileprivate class TestObservableObject: ObservableObject { - @AsyncValue var myValue = "Test" { - willSet { objectWillChange.send() } - } -} +#endif