11import { describe , expect , it , vi , beforeEach } from 'vitest' ;
22
3- const { mockGetWorkflowRunsByDate, mockGetChangelogByDate, mockGetDateConfigs, mockGetDb } =
4- vi . hoisted ( ( ) => ( {
5- mockGetWorkflowRunsByDate : vi . fn ( ) ,
6- mockGetChangelogByDate : vi . fn ( ) ,
7- mockGetDateConfigs : vi . fn ( ) ,
8- mockGetDb : vi . fn ( ( ) => 'mock-sql' ) ,
9- } ) ) ;
3+ const {
4+ mockGetWorkflowRunsByDate,
5+ mockGetChangelogByDate,
6+ mockGetDateConfigs,
7+ mockGetRunConfigsByDate,
8+ mockGetDb,
9+ } = vi . hoisted ( ( ) => ( {
10+ mockGetWorkflowRunsByDate : vi . fn ( ) ,
11+ mockGetChangelogByDate : vi . fn ( ) ,
12+ mockGetDateConfigs : vi . fn ( ) ,
13+ mockGetRunConfigsByDate : vi . fn ( ) ,
14+ mockGetDb : vi . fn ( ( ) => 'mock-sql' ) ,
15+ } ) ) ;
1016
1117vi . mock ( '@semianalysisai/inferencex-db/connection' , ( ) => ( {
1218 getDb : mockGetDb ,
@@ -18,6 +24,7 @@ vi.mock('@semianalysisai/inferencex-db/queries/workflow-info', () => ({
1824 getWorkflowRunsByDate : mockGetWorkflowRunsByDate ,
1925 getChangelogByDate : mockGetChangelogByDate ,
2026 getDateConfigs : mockGetDateConfigs ,
27+ getRunConfigsByDate : mockGetRunConfigsByDate ,
2128} ) ) ;
2229
2330vi . mock ( '@/lib/api-cache' , ( ) => ( {
@@ -60,9 +67,13 @@ describe('GET /api/v1/workflow-info', () => {
6067 const mockRuns = [ { id : 1 , status : 'completed' } ] ;
6168 const mockChangelogs = [ { version : '1.0' , changes : 'Initial' } ] ;
6269 const mockConfigs = [ { model : 'dsr1' , gpu : 'h200' } ] ;
70+ const mockRunConfigs = [
71+ { github_run_id : 1 , model : 'dsr1' , hardware : 'h200' , framework : 'vllm' } ,
72+ ] ;
6373 mockGetWorkflowRunsByDate . mockResolvedValueOnce ( mockRuns ) ;
6474 mockGetChangelogByDate . mockResolvedValueOnce ( mockChangelogs ) ;
6575 mockGetDateConfigs . mockResolvedValueOnce ( mockConfigs ) ;
76+ mockGetRunConfigsByDate . mockResolvedValueOnce ( mockRunConfigs ) ;
6677
6778 const res = await GET ( req ( '/api/v1/workflow-info?date=2026-03-01' ) ) ;
6879 expect ( res . status ) . toBe ( 200 ) ;
@@ -71,28 +82,32 @@ describe('GET /api/v1/workflow-info', () => {
7182 runs : mockRuns ,
7283 changelogs : mockChangelogs ,
7384 configs : mockConfigs ,
85+ runConfigs : mockRunConfigs ,
7486 } ) ;
7587 expect ( mockGetWorkflowRunsByDate ) . toHaveBeenCalledWith ( 'mock-sql' , '2026-03-01' ) ;
7688 expect ( mockGetChangelogByDate ) . toHaveBeenCalledWith ( 'mock-sql' , '2026-03-01' ) ;
7789 expect ( mockGetDateConfigs ) . toHaveBeenCalledWith ( 'mock-sql' , '2026-03-01' ) ;
90+ expect ( mockGetRunConfigsByDate ) . toHaveBeenCalledWith ( 'mock-sql' , '2026-03-01' ) ;
7891 } ) ;
7992
8093 it ( 'accepts empty date param (returns all)' , async ( ) => {
8194 mockGetWorkflowRunsByDate . mockResolvedValueOnce ( [ ] ) ;
8295 mockGetChangelogByDate . mockResolvedValueOnce ( [ ] ) ;
8396 mockGetDateConfigs . mockResolvedValueOnce ( [ ] ) ;
97+ mockGetRunConfigsByDate . mockResolvedValueOnce ( [ ] ) ;
8498
8599 const res = await GET ( req ( '/api/v1/workflow-info' ) ) ;
86100 expect ( res . status ) . toBe ( 200 ) ;
87101 const body = await res . json ( ) ;
88- expect ( body ) . toEqual ( { runs : [ ] , changelogs : [ ] , configs : [ ] } ) ;
102+ expect ( body ) . toEqual ( { runs : [ ] , changelogs : [ ] , configs : [ ] , runConfigs : [ ] } ) ;
89103 expect ( mockGetWorkflowRunsByDate ) . toHaveBeenCalledWith ( 'mock-sql' , '' ) ;
90104 } ) ;
91105
92106 it ( 'returns 500 when any query throws' , async ( ) => {
93107 mockGetWorkflowRunsByDate . mockRejectedValueOnce ( new Error ( 'Timeout' ) ) ;
94108 mockGetChangelogByDate . mockResolvedValueOnce ( [ ] ) ;
95109 mockGetDateConfigs . mockResolvedValueOnce ( [ ] ) ;
110+ mockGetRunConfigsByDate . mockResolvedValueOnce ( [ ] ) ;
96111
97112 const res = await GET ( req ( '/api/v1/workflow-info?date=2026-03-01' ) ) ;
98113 expect ( res . status ) . toBe ( 500 ) ;
0 commit comments