Files
ggbond268--mactools/Tests/App/FeatureManagementTableViewTests.swift
wehub-resource-sync 1d1286fadb
Build / Build and test (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 13:18:38 +08:00

75 lines
2.3 KiB
Swift

import AppKit
import SwiftUI
import XCTest
import MacToolsPluginKit
@testable import MacTools
final class FeatureManagementTableViewTests: XCTestCase {
func testUpdatePolicySkipsUnchangedItems() {
let items = [
makeItem(id: "activity-bar", isVisible: true, isActive: false)
]
XCTAssertFalse(FeatureManagementTableUpdatePolicy.needsUpdate(
previousItems: items,
currentItems: items,
previousIsReorderEnabled: true,
currentIsReorderEnabled: true,
previousContentWidth: 480.2,
currentContentWidth: 480.4
))
}
func testUpdatePolicyRefreshesWhenRowStateChanges() {
let previousItems = [
makeItem(id: "activity-bar", isVisible: true, isActive: false)
]
let currentItems = [
makeItem(id: "activity-bar", isVisible: false, isActive: false)
]
XCTAssertTrue(FeatureManagementTableUpdatePolicy.needsUpdate(
previousItems: previousItems,
currentItems: currentItems,
previousIsReorderEnabled: true,
currentIsReorderEnabled: true,
previousContentWidth: 480,
currentContentWidth: 480
))
}
func testUpdatePolicyRefreshesWhenWidthChangesByPoint() {
let items = [
makeItem(id: "activity-bar", isVisible: true, isActive: false)
]
XCTAssertTrue(FeatureManagementTableUpdatePolicy.needsUpdate(
previousItems: items,
currentItems: items,
previousIsReorderEnabled: true,
currentIsReorderEnabled: true,
previousContentWidth: 480,
currentContentWidth: 482
))
}
private func makeItem(
id: String,
isVisible: Bool,
isActive: Bool
) -> PluginFeatureManagementItem {
PluginFeatureManagementItem(
id: id,
title: "活动统计",
description: "统计输入与活动",
iconName: "chart.bar.xaxis",
iconTint: Color(nsColor: .systemGreen),
isVisible: isVisible,
isActive: isActive,
presentation: .featureAndComponentPanel,
category: nil,
releaseChannel: nil
)
}
}