Skip to content

Commit bc9e473

Browse files
committed
test: clickhouse — finops query history clamping and TLS credential detection
Cover the ClickHouse paths added with the ClickHouse driver (#574): - buildHistoryQuery clamping logic (days 1-365, limit 1-10000, NaN defaults) - isSensitiveField for tls_key, tls_cert, tls_ca_cert Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]> https://claude.ai/code/session_012jvWsEtSUeZKaCe7Xp4StX
1 parent 0d34855 commit bc9e473

File tree

2 files changed

+47
-0
lines changed

2 files changed

+47
-0
lines changed

packages/opencode/test/altimate/connections.test.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -257,6 +257,12 @@ describe("CredentialStore", () => {
257257
expect(CredentialStore.isSensitiveField("ssl_ca")).toBe(true)
258258
expect(CredentialStore.isSensitiveField("ssh_password")).toBe(true)
259259
})
260+
261+
test("isSensitiveField covers ClickHouse TLS credential fields", () => {
262+
expect(CredentialStore.isSensitiveField("tls_key")).toBe(true)
263+
expect(CredentialStore.isSensitiveField("tls_cert")).toBe(true)
264+
expect(CredentialStore.isSensitiveField("tls_ca_cert")).toBe(true)
265+
})
260266
// altimate_change end
261267

262268
test("saveConnection strips inline private_key as sensitive", async () => {

packages/opencode/test/altimate/schema-finops-dbt.test.ts

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,47 @@ describe("FinOps: SQL template generation", () => {
158158
const built = HistoryTemplates.buildHistoryQuery("databricks", 7, 50)
159159
expect(built?.sql).toContain("system.query.history")
160160
})
161+
162+
// altimate_change start — ClickHouse buildHistoryQuery coverage (added with ClickHouse driver)
163+
test("builds ClickHouse history SQL with string substitution", () => {
164+
const built = HistoryTemplates.buildHistoryQuery("clickhouse", 30, 500)
165+
expect(built).not.toBeNull()
166+
expect(built!.sql).toContain("system.query_log")
167+
expect(built!.sql).toContain("- 30")
168+
expect(built!.sql).toContain("LIMIT 500")
169+
expect(built!.binds).toEqual([])
170+
})
171+
172+
test("ClickHouse clamps days above 365 to 365", () => {
173+
const built = HistoryTemplates.buildHistoryQuery("clickhouse", 999, 100)
174+
expect(built!.sql).toContain("- 365")
175+
expect(built!.sql).not.toContain("999")
176+
})
177+
178+
test("ClickHouse clamps negative days to 1", () => {
179+
const built = HistoryTemplates.buildHistoryQuery("clickhouse", -5, 100)
180+
expect(built!.sql).toContain("- 1")
181+
expect(built!.sql).not.toContain("-5")
182+
})
183+
184+
test("ClickHouse clamps limit above 10000 to 10000", () => {
185+
const built = HistoryTemplates.buildHistoryQuery("clickhouse", 7, 99999)
186+
expect(built!.sql).toContain("LIMIT 10000")
187+
expect(built!.sql).not.toContain("99999")
188+
})
189+
190+
test("ClickHouse clamps zero limit to 1", () => {
191+
const built = HistoryTemplates.buildHistoryQuery("clickhouse", 7, 0)
192+
expect(built!.sql).toContain("LIMIT 1")
193+
})
194+
195+
test("ClickHouse uses defaults when days/limit are NaN", () => {
196+
const built = HistoryTemplates.buildHistoryQuery("clickhouse", NaN, NaN)
197+
expect(built).not.toBeNull()
198+
expect(built!.sql).toContain("- 30")
199+
expect(built!.sql).toContain("LIMIT 100")
200+
})
201+
// altimate_change end
161202
})
162203

163204
describe("warehouse-advisor", () => {

0 commit comments

Comments
 (0)