Skip to content

Commit 9f61ec7

Browse files
- Updated package
- Updated tests to not wipe user recents
1 parent cc468f4 commit 9f61ec7

File tree

4 files changed

+20
-7
lines changed

4 files changed

+20
-7
lines changed

CodeEdit.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

CodeEdit/Features/WindowCommands/Utils/CommandsFixes.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ extension EventModifiers {
1212
}
1313

1414
extension NSMenuItem {
15+
@MainActor
1516
@objc
1617
fileprivate func fixAlternate(_ newValue: NSEvent.ModifierFlags) {
1718
if newValue.contains(.numericPad) {

CodeEdit/Features/WindowCommands/Utils/RecentProjectsMenu.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import AppKit
99
import WelcomeWindow
1010

11+
@MainActor
1112
final class RecentProjectsMenu: NSObject, NSMenuDelegate {
1213

1314
// MARK: - Menu construction

CodeEditTests/Features/Welcome/RecentProjectsTests.swift

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,14 @@ import Foundation
1313
// -----------------------------------------------------------------------------
1414
// MARK: - helpers
1515
// -----------------------------------------------------------------------------
16+
17+
private let testDefaults: UserDefaults = {
18+
let name = "RecentsStoreTests.\(UUID())"
19+
let userDefaults = UserDefaults(suiteName: name)!
20+
userDefaults.removePersistentDomain(forName: name) // start clean
21+
return userDefaults
22+
}()
23+
1624
private extension URL {
1725
/// Creates an empty file (or directory) on disk, so we can successfully
1826
/// generate security-scoped bookmarks for it.
@@ -37,9 +45,10 @@ private extension URL {
3745
}
3846
}
3947

48+
@MainActor
4049
private func clear() {
4150
RecentsStore.clearList()
42-
UserDefaults.standard.removeObject(forKey: "recentProjectBookmarks")
51+
testDefaults.removeObject(forKey: "recentProjectBookmarks")
4352
}
4453

4554
/// A container for values that need to remain alive for the whole test-suite.
@@ -66,17 +75,19 @@ private enum TestContext {
6675

6776
// Needs to be serial – everything writes to `UserDefaults.standard`.
6877
@Suite(.serialized)
78+
@MainActor
6979
class RecentsStoreTests {
7080

7181
init() {
72-
// Start every suite run with a clean slate.
73-
RecentsStore.clearList()
74-
UserDefaults.standard.removeObject(forKey: "recentProjectBookmarks")
82+
// Redirect the store to the throw-away suite.
83+
RecentsStore.defaults = testDefaults
84+
clear()
7585
}
7686

7787
deinit {
78-
RecentsStore.clearList()
79-
UserDefaults.standard.removeObject(forKey: "recentProjectBookmarks")
88+
Task { @MainActor in
89+
clear()
90+
}
8091
}
8192

8293
// -------------------------------------------------------------------------

0 commit comments

Comments
 (0)