restructure
Some checks failed
CI - Multi-Platform Native / Build iOS (RSSuper) (push) Has been cancelled
CI - Multi-Platform Native / Build macOS (push) Has been cancelled
CI - Multi-Platform Native / Build Android (push) Has been cancelled
CI - Multi-Platform Native / Build Linux (push) Has been cancelled
CI - Multi-Platform Native / Build Summary (push) Has been cancelled

This commit is contained in:
2026-03-30 16:39:18 -04:00
parent a8e07d52f0
commit c2e1622bd8
252 changed files with 4803 additions and 17165 deletions

View File

@@ -0,0 +1,102 @@
//
// NotificationPreferencesTests.swift
// RSSuperTests
//
// Created by Mike Freno on 3/29/26.
//
import XCTest
@testable import RSSuper
final class NotificationPreferencesTests: XCTestCase {
func testNotificationPreferencesEncodingDecoding() throws {
let prefs = NotificationPreferences(
newArticles: true,
episodeReleases: false,
customAlerts: true,
badgeCount: true,
sound: false,
vibration: true
)
let data = try JSONEncoder().encode(prefs)
let decoded = try JSONDecoder().decode(NotificationPreferences.self, from: data)
XCTAssertEqual(decoded.newArticles, prefs.newArticles)
XCTAssertEqual(decoded.episodeReleases, prefs.episodeReleases)
XCTAssertEqual(decoded.customAlerts, prefs.customAlerts)
XCTAssertEqual(decoded.badgeCount, prefs.badgeCount)
XCTAssertEqual(decoded.sound, prefs.sound)
XCTAssertEqual(decoded.vibration, prefs.vibration)
}
func testNotificationPreferencesDefaults() {
let prefs = NotificationPreferences()
XCTAssertEqual(prefs.newArticles, true)
XCTAssertEqual(prefs.episodeReleases, true)
XCTAssertEqual(prefs.customAlerts, false)
XCTAssertEqual(prefs.badgeCount, true)
XCTAssertEqual(prefs.sound, true)
XCTAssertEqual(prefs.vibration, true)
}
func testNotificationPreferencesAllEnabled() {
let allEnabled = NotificationPreferences(
newArticles: true,
episodeReleases: true,
customAlerts: true,
badgeCount: true,
sound: true,
vibration: true
)
XCTAssertTrue(allEnabled.allEnabled)
}
func testNotificationPreferencesAnyEnabled() {
let noneEnabled = NotificationPreferences(
newArticles: false,
episodeReleases: false,
customAlerts: false,
badgeCount: false,
sound: false,
vibration: false
)
XCTAssertFalse(noneEnabled.anyEnabled)
let someEnabled = NotificationPreferences(
newArticles: true,
episodeReleases: false,
customAlerts: false,
badgeCount: false,
sound: false,
vibration: false
)
XCTAssertTrue(someEnabled.anyEnabled)
}
func testNotificationPreferencesEquality() {
let prefs1 = NotificationPreferences(newArticles: true, episodeReleases: false)
let prefs2 = NotificationPreferences(newArticles: true, episodeReleases: false)
let prefs3 = NotificationPreferences(newArticles: false, episodeReleases: true)
XCTAssertEqual(prefs1, prefs2)
XCTAssertNotEqual(prefs1, prefs3)
}
func testNotificationPreferencesDebugDescription() {
let prefs = NotificationPreferences(
newArticles: true,
episodeReleases: false,
customAlerts: true
)
let debugDesc = prefs.debugDescription
XCTAssertTrue(debugDesc.contains("true"))
XCTAssertTrue(debugDesc.contains("false"))
}
}