From cff7be37bc308130d26ac74b47ebaf9a85c9d6d8 Mon Sep 17 00:00:00 2001 From: hatimhtm <106043141+hatimhtm@users.noreply.github.com> Date: Sat, 21 Mar 2026 10:53:56 +0000 Subject: [PATCH] =?UTF-8?q?=F0=9F=A7=AA=20Add=20tests=20for=20ContentView?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 🎯 What: Added tests to verify the UserDefaults initialization logic in ContentView. 📊 Coverage: Tested that isClickToMinimizeEnabled defaults to true when empty, and correctly respects existing true or false values in UserDefaults. ✨ Result: Increased test coverage for the ContentView state initialization logic. Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com> --- Click2MinimizeTests/ContentViewTests.swift | 63 ++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 Click2MinimizeTests/ContentViewTests.swift diff --git a/Click2MinimizeTests/ContentViewTests.swift b/Click2MinimizeTests/ContentViewTests.swift new file mode 100644 index 0000000..539e96f --- /dev/null +++ b/Click2MinimizeTests/ContentViewTests.swift @@ -0,0 +1,63 @@ +import XCTest +import SwiftUI +@testable import Click2Minimize + +final class ContentViewTests: XCTestCase { + + override func setUp() { + super.setUp() + // Clear UserDefaults before each test + UserDefaults.standard.removeObject(forKey: "ClickToMinimizeEnabled") + } + + override func tearDown() { + // Clear UserDefaults after each test + UserDefaults.standard.removeObject(forKey: "ClickToMinimizeEnabled") + super.tearDown() + } + + func testContentViewDefaultUserDefaultsValue() { + // Arrange + // Ensure UserDefaults is empty + XCTAssertNil(UserDefaults.standard.object(forKey: "ClickToMinimizeEnabled")) + + // Act + // Initializing the view should trigger the @State default value logic + let _ = ContentView() + + // Assert + // Verify that the default value (true) was set in UserDefaults + let isEnabled = UserDefaults.standard.bool(forKey: "ClickToMinimizeEnabled") + XCTAssertTrue(isEnabled, "isClickToMinimizeEnabled should default to true when UserDefaults is empty") + } + + func testContentViewRespectsExistingUserDefaultsValueFalse() { + // Arrange + // Set an existing value in UserDefaults to false + UserDefaults.standard.set(false, forKey: "ClickToMinimizeEnabled") + + // Act + // Initializing the view should read the existing value, not overwrite it with the default + let _ = ContentView() + + // Assert + // Verify that the value remains false + let isEnabled = UserDefaults.standard.bool(forKey: "ClickToMinimizeEnabled") + XCTAssertFalse(isEnabled, "ContentView should respect existing false value in UserDefaults") + } + + func testContentViewRespectsExistingUserDefaultsValueTrue() { + // Arrange + // Set an existing value in UserDefaults to true + UserDefaults.standard.set(true, forKey: "ClickToMinimizeEnabled") + + // Act + // Initializing the view + let _ = ContentView() + + // Assert + // Verify that the value remains true + let isEnabled = UserDefaults.standard.bool(forKey: "ClickToMinimizeEnabled") + XCTAssertTrue(isEnabled, "ContentView should respect existing true value in UserDefaults") + } +}