Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix CodeQL Reporting #96

Merged
merged 6 commits into from
Jan 23, 2025
Merged
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
1 change: 1 addition & 0 deletions .github/workflows/documentation-deployment.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,3 +30,4 @@ jobs:
with:
scheme: 'TemplateApplication'
dryrun: ${{ github.ref_name != 'main' }}
xcodeversion: "16.1" # Temporary workaround for: https://github.com/actions/runner-images/issues/11335. Remove when resolved.
3 changes: 2 additions & 1 deletion .github/workflows/static-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,11 +42,12 @@ jobs:
contents: read
codeql:
name: CodeQL
uses: StanfordSpezi/.github/.github/workflows/xcodebuild-or-fastlane.yml@v2
uses: StanfordBDHG/.github/.github/workflows/xcodebuild-or-fastlane.yml@v2
permissions:
security-events: write
actions: read
contents: read
with:
codeql: true
fastlanelane: codeql
xcodeversion: "16.1" # Temporary workaround for: https://github.com/actions/runner-images/issues/11335. Remove when resolved.
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,19 +25,19 @@ It demonstrates using the [Spezi](https://github.com/StanfordSpezi/Spezi) ecosys

The following screenshots show a wide variety of features based on Spezi Modules that are part of the Spezi Template Application.

|![A screen displaying welcome information.](TemplateApplication/Supporting%20Files/TemplateApplication.docc/Resources/Onboarding/Welcome.png#gh-light-mode-only) ![A screen displaying welcome information.](TemplateApplication/Supporting%20Files/TemplateApplication.docc/Resources/Onboarding/Welcome~dark.png#gh-dark-mode-only)|![A screen showing an overview of the modules used in the Spezi Template Application.](TemplateApplication/Supporting%20Files/TemplateApplication.docc/Resources/Onboarding/InterestingModules.png#gh-light-mode-only) ![A screen showing an overview of the modules used in the Spezi Template Application.](TemplateApplication/Supporting%20Files/TemplateApplication.docc/Resources/Onboarding/InterestingModules~dark.png#gh-dark-mode-only)|![A screen displaying the consent view.](TemplateApplication/Supporting%20Files/TemplateApplication.docc/Resources/Onboarding/Consent.png#gh-light-mode-only) ![A screen displaying the consent view.](TemplateApplication/Supporting%20Files/TemplateApplication.docc/Resources/Onboarding/Consent~dark.png#gh-dark-mode-only)
|![A screen displaying welcome information.](<TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Onboarding/Welcome.png#gh-light-mode-only>) ![A screen displaying welcome information.](<TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Onboarding/Welcome~dark.png#gh-dark-mode-only>)|![A screen showing an overview of the modules used in the Spezi Template Application.](<TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Onboarding/InterestingModules.png#gh-light-mode-only>) ![A screen showing an overview of the modules used in the Spezi Template Application.](<TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Onboarding/InterestingModules~dark.png#gh-dark-mode-only>)|![A screen displaying the consent view.](<TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Onboarding/Consent.png#gh-light-mode-only>) ![A screen displaying the consent view.](<TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Onboarding/Consent~dark.png#gh-dark-mode-only>)
|:--:|:--:|:--:|
|Welcome View|Interesting Modules|Consent Signature|

|![HealthKit Onboarding Flow](TemplateApplication/Supporting%20Files/TemplateApplication.docc/Resources/Onboarding/HealthKitAccess.png#gh-light-mode-only) ![HealthKit Onboarding Flow](TemplateApplication/Supporting%20Files/TemplateApplication.docc/Resources/Onboarding/HealthKitAccess~dark.png#gh-dark-mode-only)|![Permissions screen of the HealthKit framework](TemplateApplication/Supporting%20Files/TemplateApplication.docc/Resources/Onboarding/HealthKitSheet.png#gh-light-mode-only) ![Permissions screen of the HealthKit framework](TemplateApplication/Supporting%20Files/TemplateApplication.docc/Resources/Onboarding/HealthKitSheet~dark.png#gh-dark-mode-only)|![Onboarding screen showing the Notifications permission screen.](TemplateApplication/Supporting%20Files/TemplateApplication.docc/Resources/Schedule/Notifications.png#gh-light-mode-only) ![Onboarding screen showing the Notifications permission screen.](TemplateApplication/Supporting%20Files/TemplateApplication.docc/Resources/Schedule/Notifications~dark.png#gh-dark-mode-only)|
|![HealthKit Onboarding Flow](<TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Onboarding/HealthKitAccess.png#gh-light-mode-only>) ![HealthKit Onboarding Flow](<TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Onboarding/HealthKitAccess~dark.png#gh-dark-mode-only>)|![Permissions screen of the HealthKit framework](<TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Onboarding/HealthKitSheet.png#gh-light-mode-only>) ![Permissions screen of the HealthKit framework](<TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Onboarding/HealthKitSheet~dark.png#gh-dark-mode-only>)|![Onboarding screen showing the Notifications permission screen.](<TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Schedule/Notifications.png#gh-light-mode-only>) ![Onboarding screen showing the Notifications permission screen.](<TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Schedule/Notifications~dark.png#gh-dark-mode-only>)|
|:--:|:--:|:--:|
|HealthKit Access|Granular HealthKit Share Control|Trigger Local Notifications|

|![A screen displaying the Scheduler UI.](TemplateApplication/Supporting%20Files/TemplateApplication.docc/Resources/Schedule/Schedule.png#gh-light-mode-only) ![A screen displaying the Scheduler UI.](TemplateApplication/Supporting%20Files/TemplateApplication.docc/Resources/Schedule/Schedule~dark.png#gh-dark-mode-only)|![A screen showing a questionnaire using ResearchKit.](TemplateApplication/Supporting%20Files/TemplateApplication.docc/Resources/Schedule/Questionnaire.png#gh-light-mode-only) ![A screen showing a questionnaire using ResearchKit.](TemplateApplication/Supporting%20Files/TemplateApplication.docc/Resources/Schedule/Questionnaire~dark.png#gh-dark-mode-only)|![The scheduler screen showing the completed UI](TemplateApplication/Supporting%20Files/TemplateApplication.docc/Resources/Schedule/ScheduleComplete.png#gh-light-mode-only) ![The scheduler screen showing the completed UI](TemplateApplication/Supporting%20Files/TemplateApplication.docc/Resources/Schedule/ScheduleComplete~dark.png#gh-dark-mode-only)|
|![A screen displaying the Scheduler UI.](<TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Schedule/Schedule.png#gh-light-mode-only>) ![A screen displaying the Scheduler UI.](<TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Schedule/Schedule~dark.png#gh-dark-mode-only>)|![A screen showing a questionnaire using ResearchKit.](<TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Schedule/Questionnaire.png#gh-light-mode-only>) ![A screen showing a questionnaire using ResearchKit.](<TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Schedule/Questionnaire~dark.png#gh-dark-mode-only>)|![The scheduler screen showing the completed UI](<TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Schedule/ScheduleComplete.png#gh-light-mode-only>) ![The scheduler screen showing the completed UI](<TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Schedule/ScheduleComplete~dark.png#gh-dark-mode-only>)|
|:--:|:--:|:--:|
|Schedule Tasks|Display Questionnaires|Keep Track of Tasks|

|![A screen displaying the Contact UI.](TemplateApplication/Supporting%20Files/TemplateApplication.docc/Resources/Context/Contacts.png#gh-light-mode-only) ![A screen displaying the Contact UI.](TemplateApplication/Supporting%20Files/TemplateApplication.docc/Resources/Context/Contacts~dark.png#gh-dark-mode-only)|![A screen displaying the current user account information.](TemplateApplication/Supporting%20Files/TemplateApplication.docc/Resources/Account/Account.png#gh-light-mode-only) ![A screen displaying the current user account information.](TemplateApplication/Supporting%20Files/TemplateApplication.docc/Resources/Account/Account~dark.png#gh-dark-mode-only)|![License information to list all used Swift Packages](TemplateApplication/Supporting%20Files/TemplateApplication.docc/Resources/Context/License.png#gh-light-mode-only) ![License information to list all used Swift Packages](TemplateApplication/Supporting%20Files/TemplateApplication.docc/Resources/Context/License~dark.png#gh-dark-mode-only)|
|![A screen displaying the Contact UI.](<TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Context/Contacts.png#gh-light-mode-only>) ![A screen displaying the Contact UI.](<TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Context/Contacts~dark.png#gh-dark-mode-only>)|![A screen displaying the current user account information.](<TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Account/Account.png#gh-light-mode-only>) ![A screen displaying the current user account information.](<TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Account/Account~dark.png#gh-dark-mode-only>)|![License information to list all used Swift Packages](<TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Context/License.png#gh-light-mode-only>) ![License information to list all used Swift Packages](<TemplateApplication/Supporting Files/TemplateApplication.docc/Resources/Context/License~dark.png#gh-dark-mode-only>)|
|:--:|:--:|:--:|
|Contact Information|Account Overview|License Information|

Expand Down
10 changes: 6 additions & 4 deletions TemplateApplicationUITests/ContributionsTest.swift
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,14 @@ final class ContributionsTest: XCTestCase {
}

@MainActor
func testLicenseInformationPage() throws {
func testLicenseInformationPage() async throws {
let app = XCUIApplication()

XCTAssertTrue(app.wait(for: .runningForeground, timeout: 2.0))

sleep(1)

// Waiting until the setup test accounts actions have been finished & sheets are dismissed.
try await Task.sleep(for: .seconds(5))

XCTAssertTrue(app.navigationBars.buttons["Your Account"].waitForExistence(timeout: 6.0))
app.navigationBars.buttons["Your Account"].tap()

Expand Down
1 change: 1 addition & 0 deletions TemplateApplicationUITests/SchedulerTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ class SchedulerTests: XCTestCase {
XCTAssert(app.staticTexts["What is your age?"].waitForExistence(timeout: 0.5))
XCTAssert(app.textFields["Tap to answer"].exists)
try app.textFields["Tap to answer"].enter(value: "25")
app.buttons["Done"].tap()

XCTAssert(nextButton.isEnabled)
nextButton.tap()
Expand Down
Loading