11import { beforeEach , expect , mock , test } from "bun:test" ;
22
3- const runCalls : string [ ] [ ] = [ ] ;
43const dockerJsonCalls : Record < string , unknown > [ ] = [ ] ;
4+ const dockerPlainCalls : Record < string , unknown > [ ] = [ ] ;
55const dockerPrettyCalls : Record < string , unknown > [ ] = [ ] ;
66const lokiCalls : Record < string , unknown > [ ] = [ ] ;
77
8- mock . module ( "../src/lib/shell.ts" , ( ) => ( {
9- run : async ( cmd : readonly string [ ] ) => {
10- runCalls . push ( [ ...cmd ] ) ;
11- return 0 ;
12- } ,
13- } ) ) ;
14-
158mock . module ( "../src/ui/docker-logs.ts" , ( ) => ( {
169 dockerComposeLogsJson : async ( opts : Record < string , unknown > ) => {
1710 dockerJsonCalls . push ( opts ) ;
1811 return 0 ;
1912 } ,
13+ dockerComposeLogsPlain : async ( opts : Record < string , unknown > ) => {
14+ dockerPlainCalls . push ( opts ) ;
15+ return 0 ;
16+ } ,
2017 dockerComposeLogsPretty : async ( opts : Record < string , unknown > ) => {
2118 dockerPrettyCalls . push ( opts ) ;
2219 return 0 ;
@@ -37,8 +34,8 @@ import {
3734} from "../src/backends/log-backend.ts" ;
3835
3936beforeEach ( ( ) => {
40- runCalls . length = 0 ;
4137 dockerJsonCalls . length = 0 ;
38+ dockerPlainCalls . length = 0 ;
4239 dockerPrettyCalls . length = 0 ;
4340 lokiCalls . length = 0 ;
4441} ) ;
@@ -81,21 +78,15 @@ test("composeLogBackend routes plain output to docker compose logs", async () =>
8178 profiles : [ "ops" ] ,
8279 } ) ;
8380
84- expect ( runCalls [ 0 ] ) . toEqual ( [
85- "docker" ,
86- "compose" ,
87- "-p" ,
88- "proj" ,
89- "-f" ,
90- "docker-compose.yml" ,
91- "--profile" ,
92- "ops" ,
93- "logs" ,
94- "-f" ,
95- "--tail" ,
96- "10" ,
97- "api" ,
98- ] ) ;
81+ expect ( dockerPlainCalls . length ) . toBe ( 1 ) ;
82+ expect ( dockerPlainCalls [ 0 ] ) . toMatchObject ( {
83+ composeFile : "docker-compose.yml" ,
84+ follow : true ,
85+ tail : 10 ,
86+ service : "api" ,
87+ composeProject : "proj" ,
88+ profiles : [ "ops" ] ,
89+ } ) ;
9990} ) ;
10091
10192test ( "lokiLogBackend.isAvailable proxies canReachLoki" , async ( ) => {
0 commit comments