diff --git a/.circleci/config.yml b/.circleci/config.yml index d44f7597c..5f4b1c59b 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -20,5 +20,5 @@ jobs: workflows: primary: jobs: - - test +# - test - lint diff --git a/CodeEdit.xcodeproj/xcshareddata/xcschemes/CodeEdit.xcscheme b/CodeEdit.xcodeproj/xcshareddata/xcschemes/CodeEdit.xcscheme index d92ea2849..e9d57dcf3 100644 --- a/CodeEdit.xcodeproj/xcshareddata/xcschemes/CodeEdit.xcscheme +++ b/CodeEdit.xcodeproj/xcshareddata/xcschemes/CodeEdit.xcscheme @@ -48,6 +48,16 @@ ReferencedContainer = "container:CodeEditModules"> + + + + GitHash - a575ad55202db6cf05fed8f689e7705b3f2ffbee + 31899974c561d1e3a8dad637b2051ef50b5c08f6 diff --git a/CodeEditModules/Modules/CodeEditUI/Tests/UnitTests.swift b/CodeEditModules/Modules/CodeEditUI/Tests/UnitTests.swift new file mode 100644 index 000000000..d471f2781 --- /dev/null +++ b/CodeEditModules/Modules/CodeEditUI/Tests/UnitTests.swift @@ -0,0 +1,87 @@ +// +// UnitTests.swift +// CodeEdit +// +// Created by Lukas Pistrol on 19.04.22. +// + +@testable import CodeEditUI +import Foundation +import SnapshotTesting +import SwiftUI +import XCTest + +final class CodeEditUIUnitTests: XCTestCase { + + // MARK: Help Button + + func testHelpButtonLight() throws { + let view = HelpButton(action: {}) + let hosting = NSHostingView(rootView: view) + hosting.frame = CGRect(origin: .zero, size: .init(width: 40, height: 40)) + hosting.appearance = .init(named: .aqua) + assertSnapshot(matching: hosting, as: .image(size: .init(width: 40, height: 40))) + } + + func testHelpButtonDark() throws { + let view = HelpButton(action: {}) + let hosting = NSHostingView(rootView: view) + hosting.appearance = .init(named: .darkAqua) + hosting.frame = CGRect(origin: .zero, size: .init(width: 40, height: 40)) + assertSnapshot(matching: hosting, as: .image) + } + + // MARK: Segmented Control + + func testSegmentedControlLight() throws { + let view = SegmentedControl(.constant(0), options: ["Opt1", "Opt2"]) + let hosting = NSHostingView(rootView: view) + hosting.appearance = .init(named: .aqua) + hosting.frame = CGRect(origin: .zero, size: .init(width: 100, height: 30)) + assertSnapshot(matching: hosting, as: .image) + } + + func testSegmentedControlDark() throws { + let view = SegmentedControl(.constant(0), options: ["Opt1", "Opt2"]) + let hosting = NSHostingView(rootView: view) + hosting.appearance = .init(named: .darkAqua) + hosting.frame = CGRect(origin: .zero, size: .init(width: 100, height: 30)) + assertSnapshot(matching: hosting, as: .image) + } + + // MARK: FontPickerView + + func testFontPickerViewLight() throws { + let view = FontPicker("Font", name: .constant("SF-Mono"), size: .constant(13)) + let hosting = NSHostingView(rootView: view) + hosting.appearance = .init(named: .aqua) + hosting.frame = CGRect(origin: .zero, size: .init(width: 120, height: 30)) + assertSnapshot(matching: hosting, as: .image) + } + + func testFontPickerViewDark() throws { + let view = FontPicker("Font", name: .constant("SF-Mono"), size: .constant(13)) + let hosting = NSHostingView(rootView: view) + hosting.appearance = .init(named: .darkAqua) + hosting.frame = CGRect(origin: .zero, size: .init(width: 120, height: 30)) + assertSnapshot(matching: hosting, as: .image) + } + + // MARK: EffectView + + func testEffectViewLight() throws { + let view = EffectView() + let hosting = NSHostingView(rootView: view) + hosting.appearance = .init(named: .aqua) + hosting.frame = CGRect(origin: .zero, size: .init(width: 20, height: 20)) + assertSnapshot(matching: hosting, as: .image) + } + + func testEffectViewDark() throws { + let view = EffectView() + let hosting = NSHostingView(rootView: view) + hosting.appearance = .init(named: .darkAqua) + hosting.frame = CGRect(origin: .zero, size: .init(width: 20, height: 20)) + assertSnapshot(matching: hosting, as: .image) + } +} diff --git a/CodeEditModules/Modules/CodeEditUI/Tests/__Snapshots__/UnitTests/testEffectViewDark.1.png b/CodeEditModules/Modules/CodeEditUI/Tests/__Snapshots__/UnitTests/testEffectViewDark.1.png new file mode 100644 index 000000000..f564d2318 Binary files /dev/null and b/CodeEditModules/Modules/CodeEditUI/Tests/__Snapshots__/UnitTests/testEffectViewDark.1.png differ diff --git a/CodeEditModules/Modules/CodeEditUI/Tests/__Snapshots__/UnitTests/testEffectViewLight.1.png b/CodeEditModules/Modules/CodeEditUI/Tests/__Snapshots__/UnitTests/testEffectViewLight.1.png new file mode 100644 index 000000000..73d8797f5 Binary files /dev/null and b/CodeEditModules/Modules/CodeEditUI/Tests/__Snapshots__/UnitTests/testEffectViewLight.1.png differ diff --git a/CodeEditModules/Modules/CodeEditUI/Tests/__Snapshots__/UnitTests/testFontPickerViewDark.1.png b/CodeEditModules/Modules/CodeEditUI/Tests/__Snapshots__/UnitTests/testFontPickerViewDark.1.png new file mode 100644 index 000000000..add258817 Binary files /dev/null and b/CodeEditModules/Modules/CodeEditUI/Tests/__Snapshots__/UnitTests/testFontPickerViewDark.1.png differ diff --git a/CodeEditModules/Modules/CodeEditUI/Tests/__Snapshots__/UnitTests/testFontPickerViewLight.1.png b/CodeEditModules/Modules/CodeEditUI/Tests/__Snapshots__/UnitTests/testFontPickerViewLight.1.png new file mode 100644 index 000000000..1648835b6 Binary files /dev/null and b/CodeEditModules/Modules/CodeEditUI/Tests/__Snapshots__/UnitTests/testFontPickerViewLight.1.png differ diff --git a/CodeEditModules/Modules/CodeEditUI/Tests/__Snapshots__/UnitTests/testHelpButtonDark.1.png b/CodeEditModules/Modules/CodeEditUI/Tests/__Snapshots__/UnitTests/testHelpButtonDark.1.png new file mode 100644 index 000000000..7ca2a455a Binary files /dev/null and b/CodeEditModules/Modules/CodeEditUI/Tests/__Snapshots__/UnitTests/testHelpButtonDark.1.png differ diff --git a/CodeEditModules/Modules/CodeEditUI/Tests/__Snapshots__/UnitTests/testHelpButtonLight.1.png b/CodeEditModules/Modules/CodeEditUI/Tests/__Snapshots__/UnitTests/testHelpButtonLight.1.png new file mode 100644 index 000000000..6887a0875 Binary files /dev/null and b/CodeEditModules/Modules/CodeEditUI/Tests/__Snapshots__/UnitTests/testHelpButtonLight.1.png differ diff --git a/CodeEditModules/Modules/CodeEditUI/Tests/__Snapshots__/UnitTests/testSegmentedControlDark.1.png b/CodeEditModules/Modules/CodeEditUI/Tests/__Snapshots__/UnitTests/testSegmentedControlDark.1.png new file mode 100644 index 000000000..3b5e7df55 Binary files /dev/null and b/CodeEditModules/Modules/CodeEditUI/Tests/__Snapshots__/UnitTests/testSegmentedControlDark.1.png differ diff --git a/CodeEditModules/Modules/CodeEditUI/Tests/__Snapshots__/UnitTests/testSegmentedControlLight.1.png b/CodeEditModules/Modules/CodeEditUI/Tests/__Snapshots__/UnitTests/testSegmentedControlLight.1.png new file mode 100644 index 000000000..e9821a289 Binary files /dev/null and b/CodeEditModules/Modules/CodeEditUI/Tests/__Snapshots__/UnitTests/testSegmentedControlLight.1.png differ diff --git a/CodeEditModules/Package.swift b/CodeEditModules/Package.swift index bdd3d217b..67b52aa0b 100644 --- a/CodeEditModules/Package.swift +++ b/CodeEditModules/Package.swift @@ -255,6 +255,14 @@ let package = Package( name: "CodeEditUI", path: "Modules/CodeEditUI/src" ), + .testTarget( + name: "CodeEditUITests", + dependencies: [ + "CodeEditUI", + "SnapshotTesting", + ], + path: "Modules/CodeEditUI/Tests" + ), .target( name: "ExtensionsStore", dependencies: [