WIP: add stack text batch actions
Some checks are pending
CI / Test And Build (push) Waiting to run

This commit is contained in:
Akshay Kolli
2026-07-01 15:58:30 -07:00
parent e1557f42b2
commit c7316105c7
8 changed files with 184 additions and 20 deletions

View File

@@ -874,6 +874,35 @@ final class ClipboardPanelViewModelTests: XCTestCase {
XCTAssertEqual(viewModel.stackCount, 0)
}
func testStackCopiesQueuedClipsAsPlainTextBatchAndConsumesThem() {
let settings = makeSettings()
let cacheService = makeCacheService()
let store = makeStore(settings: settings, cacheService: cacheService)
let first = makeTextItem("first reusable stack clip", createdAt: Date(timeIntervalSince1970: 100))
let second = makeTextItem("second reusable stack clip", createdAt: Date(timeIntervalSince1970: 200))
store.upsert(first)
store.upsert(second)
store.flushPersistenceForTesting()
let viewModel = ClipboardPanelViewModel(store: store, settings: settings, cacheService: cacheService)
waitForVisibleItems(in: viewModel, count: 2)
NSPasteboard.general.clearContents()
viewModel.selectItem(at: 1)
viewModel.toggleSelectedStackMembership()
viewModel.selectItem(at: 0)
viewModel.toggleSelectedStackMembership()
viewModel.copyStackAsText()
store.flushPersistenceForTesting()
XCTAssertEqual(NSPasteboard.general.string(forType: .string), "first reusable stack clip\n\nsecond reusable stack clip")
XCTAssertEqual(viewModel.statusMessage, "Copied 2 Stack clips as Text")
XCTAssertEqual(viewModel.stackCount, 0)
XCTAssertEqual(store.items.first(where: { $0.id == first.id })?.useCount, 1)
XCTAssertEqual(store.items.first(where: { $0.id == second.id })?.useCount, 1)
}
func testStackToggleAndClearUpdateCount() {
let settings = makeSettings()
let cacheService = makeCacheService()