test: cover cron delete-after-run in macos
This commit is contained in:
@@ -27,6 +27,7 @@ struct CronJobEditorSmokeTests {
|
|||||||
name: "Daily summary",
|
name: "Daily summary",
|
||||||
description: nil,
|
description: nil,
|
||||||
enabled: true,
|
enabled: true,
|
||||||
|
deleteAfterRun: nil,
|
||||||
createdAtMs: 1_700_000_000_000,
|
createdAtMs: 1_700_000_000_000,
|
||||||
updatedAtMs: 1_700_000_000_000,
|
updatedAtMs: 1_700_000_000_000,
|
||||||
schedule: .every(everyMs: 3_600_000, anchorMs: 1_700_000_000_000),
|
schedule: .every(everyMs: 3_600_000, anchorMs: 1_700_000_000_000),
|
||||||
@@ -67,4 +68,24 @@ struct CronJobEditorSmokeTests {
|
|||||||
onSave: { _ in })
|
onSave: { _ in })
|
||||||
view.exerciseForTesting()
|
view.exerciseForTesting()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test func cronJobEditorIncludesDeleteAfterRunForAtSchedule() throws {
|
||||||
|
var view = CronJobEditor(
|
||||||
|
job: nil,
|
||||||
|
isSaving: .constant(false),
|
||||||
|
error: .constant(nil),
|
||||||
|
onCancel: {},
|
||||||
|
onSave: { _ in })
|
||||||
|
view.name = "One-shot"
|
||||||
|
view.sessionTarget = .main
|
||||||
|
view.payloadKind = .systemEvent
|
||||||
|
view.systemEventText = "hello"
|
||||||
|
view.scheduleKind = .at
|
||||||
|
view.atDate = Date(timeIntervalSince1970: 1_700_000_000)
|
||||||
|
view.deleteAfterRun = true
|
||||||
|
|
||||||
|
let payload = try view.buildPayload()
|
||||||
|
let raw = payload["deleteAfterRun"]?.value as? Bool
|
||||||
|
#expect(raw == true)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -39,6 +39,27 @@ struct CronModelsTests {
|
|||||||
#expect(decoded == payload)
|
#expect(decoded == payload)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test func jobEncodesAndDecodesDeleteAfterRun() throws {
|
||||||
|
let job = CronJob(
|
||||||
|
id: "job-1",
|
||||||
|
agentId: nil,
|
||||||
|
name: "One-shot",
|
||||||
|
description: nil,
|
||||||
|
enabled: true,
|
||||||
|
deleteAfterRun: true,
|
||||||
|
createdAtMs: 0,
|
||||||
|
updatedAtMs: 0,
|
||||||
|
schedule: .at(atMs: 1_700_000_000_000),
|
||||||
|
sessionTarget: .main,
|
||||||
|
wakeMode: .now,
|
||||||
|
payload: .systemEvent(text: "ping"),
|
||||||
|
isolation: nil,
|
||||||
|
state: CronJobState())
|
||||||
|
let data = try JSONEncoder().encode(job)
|
||||||
|
let decoded = try JSONDecoder().decode(CronJob.self, from: data)
|
||||||
|
#expect(decoded.deleteAfterRun == true)
|
||||||
|
}
|
||||||
|
|
||||||
@Test func scheduleDecodeRejectsUnknownKind() {
|
@Test func scheduleDecodeRejectsUnknownKind() {
|
||||||
let json = """
|
let json = """
|
||||||
{"kind":"wat","atMs":1}
|
{"kind":"wat","atMs":1}
|
||||||
@@ -64,6 +85,7 @@ struct CronModelsTests {
|
|||||||
name: " hello ",
|
name: " hello ",
|
||||||
description: nil,
|
description: nil,
|
||||||
enabled: true,
|
enabled: true,
|
||||||
|
deleteAfterRun: nil,
|
||||||
createdAtMs: 0,
|
createdAtMs: 0,
|
||||||
updatedAtMs: 0,
|
updatedAtMs: 0,
|
||||||
schedule: .at(atMs: 0),
|
schedule: .at(atMs: 0),
|
||||||
@@ -86,6 +108,7 @@ struct CronModelsTests {
|
|||||||
name: "t",
|
name: "t",
|
||||||
description: nil,
|
description: nil,
|
||||||
enabled: true,
|
enabled: true,
|
||||||
|
deleteAfterRun: nil,
|
||||||
createdAtMs: 0,
|
createdAtMs: 0,
|
||||||
updatedAtMs: 0,
|
updatedAtMs: 0,
|
||||||
schedule: .at(atMs: 0),
|
schedule: .at(atMs: 0),
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ struct SettingsViewSmokeTests {
|
|||||||
name: " Morning Check-in ",
|
name: " Morning Check-in ",
|
||||||
description: nil,
|
description: nil,
|
||||||
enabled: true,
|
enabled: true,
|
||||||
|
deleteAfterRun: nil,
|
||||||
createdAtMs: 1_700_000_000_000,
|
createdAtMs: 1_700_000_000_000,
|
||||||
updatedAtMs: 1_700_000_100_000,
|
updatedAtMs: 1_700_000_100_000,
|
||||||
schedule: .cron(expr: "0 8 * * *", tz: "UTC"),
|
schedule: .cron(expr: "0 8 * * *", tz: "UTC"),
|
||||||
@@ -37,6 +38,7 @@ struct SettingsViewSmokeTests {
|
|||||||
name: "",
|
name: "",
|
||||||
description: nil,
|
description: nil,
|
||||||
enabled: false,
|
enabled: false,
|
||||||
|
deleteAfterRun: nil,
|
||||||
createdAtMs: 1_700_000_000_000,
|
createdAtMs: 1_700_000_000_000,
|
||||||
updatedAtMs: 1_700_000_100_000,
|
updatedAtMs: 1_700_000_100_000,
|
||||||
schedule: .every(everyMs: 30000, anchorMs: nil),
|
schedule: .every(everyMs: 30000, anchorMs: nil),
|
||||||
|
|||||||
Reference in New Issue
Block a user