All files / web/src/db/schema smoke-tests.ts

100% Statements 64/64
100% Branches 0/0
100% Functions 0/0
100% Lines 64/64

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 652x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x  
import { integer, sqliteTable, text } from 'drizzle-orm/sqlite-core'
 
/**
 * Smoke test results table
 *
 * Stores results from automated smoke tests run via CronJob.
 * Used by Gatus to determine if the application is functioning correctly.
 */
export const smokeTestRuns = sqliteTable('smoke_test_runs', {
  /**
   * Unique identifier for the test run
   */
  id: text('id').primaryKey(),
 
  /**
   * When the test run started
   */
  startedAt: integer('started_at', { mode: 'timestamp' }).notNull(),
 
  /**
   * When the test run completed (null if still running)
   */
  completedAt: integer('completed_at', { mode: 'timestamp' }),
 
  /**
   * Current status of the test run
   */
  status: text('status', {
    enum: ['running', 'passed', 'failed', 'error'],
  }).notNull(),
 
  /**
   * Total number of tests executed
   */
  totalTests: integer('total_tests'),
 
  /**
   * Number of tests that passed
   */
  passedTests: integer('passed_tests'),
 
  /**
   * Number of tests that failed
   */
  failedTests: integer('failed_tests'),
 
  /**
   * Total duration of the test run in milliseconds
   */
  durationMs: integer('duration_ms'),
 
  /**
   * JSON-serialized detailed test results
   */
  resultsJson: text('results_json'),
 
  /**
   * Error message if the run failed with an error
   */
  errorMessage: text('error_message'),
})
 
export type SmokeTestRun = typeof smokeTestRuns.$inferSelect
export type NewSmokeTestRun = typeof smokeTestRuns.$inferInsert