Merged
Conversation
Fix build errors preventing tests from compiling on macOS: remove UIKit import, rewrite broken fallback tests with ObjC selector conflicts, and clean up MockPeripheral/MockCentralManager. Fix incomplete testWriteValueForCharacteristic that was missing writeValue call. Add comprehensive tests for service discovery, notifications, write types, peripheral properties, advertisement data, and new test suites for FaketoothCharacteristic, FaketoothService, FaketoothDescriptor, and FaketoothSettings. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Replace the old swift.yml with a modern CI workflow that builds, tests with ObjC code coverage instrumentation, and uploads results to Codecov. Add a release workflow that auto-creates GitHub releases with semantic versioning based on Conventional Commits. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This pull request introduces significant improvements to the project's continuous integration and release automation, and adds comprehensive new unit tests for core Faketooth components. The main changes include replacing and enhancing CI workflows, automating semantic versioning and release generation, and adding robust test coverage for characteristics and descriptors. Some redundant or outdated tests were removed or refactored.
CI/CD Workflow Improvements:
.github/workflows/ci.ymlworkflow for building, testing (with code coverage), and uploading coverage reports to Codecov, running onmacos-15. This replaces the previous, simpler Swift workflow and adds coverage reporting and artifact upload..github/workflows/release.yml, a new workflow for automated releases. It analyzes commit messages using the Conventional Commits spec, determines the appropriate version bump (major/minor/patch), generates a changelog, tags the release, and publishes it using GitHub CLI..github/workflows/swift.ymlworkflow, which only handled basic build and test steps, in favor of the new, more comprehensive CI workflow.Test Suite Enhancements:
FaketoothCharacteristicTest.swiftwith extensive tests forFaketoothCharacteristic, covering initialization, value production/handling, service association, notification state, and properties.FaketoothDescriptorTest.swiftwith comprehensive tests forFaketoothDescriptor, including initialization, value production/handling, characteristic association, and data handling.CBCentralManagerTest+Fallbacks.swiftto test fallback behavior to CoreBluetooth when simulation is disabled, ensuring real CoreBluetooth methods are called and no crashes occur.Test Refactoring and Cleanup:
CBCentralManagerTest.swift, as this logic is now covered in the new dedicated fallbacks test file.FaketoothPeripheralTest.swiftto ensure expectations are properly waited for after writing a value.