Skip to content

Commit fc55067

Browse files
committed
fix: address PR review nitpicks — defer unlock, explicit type prefixes, flexible test
1 parent c347c27 commit fc55067

2 files changed

Lines changed: 22 additions & 18 deletions

File tree

TablePro/Core/Plugins/PluginMetadataRegistry.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -555,8 +555,8 @@ final class PluginMetadataRegistry: @unchecked Sendable {
555555
/// Used for multi-type plugins (e.g., MariaDB → MySQL, Redshift → PostgreSQL).
556556
func registerTypeAlias(_ aliasTypeId: String, primaryTypeId: String) {
557557
lock.lock()
558+
defer { lock.unlock() }
558559
reverseTypeIndex[aliasTypeId] = primaryTypeId
559-
lock.unlock()
560560
}
561561

562562
/// Returns all registered type IDs (sorted for deterministic UI ordering).

TableProTests/Models/DatabaseTypeTests.swift

Lines changed: 21 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -34,12 +34,16 @@ struct DatabaseTypeTests {
3434

3535
@Test("MongoDB default port is 27017")
3636
func testMongoDBDefaultPort() {
37-
#expect(.mongodb.defaultPort == 27_017)
37+
#expect(DatabaseType.mongodb.defaultPort == 27_017)
3838
}
3939

40-
@Test("allKnownTypes count is 13")
41-
func testAllKnownTypesCount() {
42-
#expect(DatabaseType.allKnownTypes.count == 13)
40+
@Test("allKnownTypes contains all built-in types")
41+
func testAllKnownTypesContainsBuiltIns() {
42+
let knownTypes = DatabaseType.allKnownTypes
43+
#expect(knownTypes.contains(.mysql))
44+
#expect(knownTypes.contains(.postgresql))
45+
#expect(knownTypes.contains(.sqlite))
46+
#expect(knownTypes.count >= 5)
4347
}
4448

4549
@Test("allCases shim matches allKnownTypes")
@@ -52,15 +56,15 @@ struct DatabaseTypeTests {
5256
(DatabaseType.mariadb, "MariaDB"),
5357
(DatabaseType.postgresql, "PostgreSQL"),
5458
(DatabaseType.sqlite, "SQLite"),
55-
(.mongodb, "MongoDB"),
56-
(.redis, "Redis"),
59+
(DatabaseType.mongodb, "MongoDB"),
60+
(DatabaseType.redis, "Redis"),
5761
(DatabaseType.redshift, "Redshift"),
58-
(.mssql, "SQL Server"),
59-
(.oracle, "Oracle"),
60-
(.clickhouse, "ClickHouse"),
61-
(.duckdb, "DuckDB"),
62-
(.cassandra, "Cassandra"),
63-
(.scylladb, "ScyllaDB")
62+
(DatabaseType.mssql, "SQL Server"),
63+
(DatabaseType.oracle, "Oracle"),
64+
(DatabaseType.clickhouse, "ClickHouse"),
65+
(DatabaseType.duckdb, "DuckDB"),
66+
(DatabaseType.cassandra, "Cassandra"),
67+
(DatabaseType.scylladb, "ScyllaDB")
6468
])
6569
func testRawValueMatchesDisplayName(dbType: DatabaseType, expectedRawValue: String) {
6670
#expect(dbType.rawValue == expectedRawValue)
@@ -70,27 +74,27 @@ struct DatabaseTypeTests {
7074

7175
@Test("ClickHouse default port is 8123")
7276
func testClickHouseDefaultPort() {
73-
#expect(.clickhouse.defaultPort == 8_123)
77+
#expect(DatabaseType.clickhouse.defaultPort == 8_123)
7478
}
7579

7680
@Test("ClickHouse requires authentication")
7781
func testClickHouseRequiresAuth() {
78-
#expect(.clickhouse.requiresAuthentication == true)
82+
#expect(DatabaseType.clickhouse.requiresAuthentication == true)
7983
}
8084

8185
@Test("ClickHouse does not support foreign keys")
8286
func testClickHouseSupportsForeignKeys() {
83-
#expect(.clickhouse.supportsForeignKeys == false)
87+
#expect(DatabaseType.clickhouse.supportsForeignKeys == false)
8488
}
8589

8690
@Test("ClickHouse supports schema editing")
8791
func testClickHouseSupportsSchemaEditing() {
88-
#expect(.clickhouse.supportsSchemaEditing == true)
92+
#expect(DatabaseType.clickhouse.supportsSchemaEditing == true)
8993
}
9094

9195
@Test("ClickHouse icon name is clickhouse-icon")
9296
func testClickHouseIconName() {
93-
#expect(.clickhouse.iconName == "clickhouse-icon")
97+
#expect(DatabaseType.clickhouse.iconName == "clickhouse-icon")
9498
}
9599

96100
// MARK: - Plugin Type ID Alias Tests

0 commit comments

Comments
 (0)