11// Restart method tests cover safe restart scheduling, deferral flags, and
22// response payloads returned by gateway.restart.request.
3- import { describe , expect , it , vi } from "vitest" ;
3+ import { beforeEach , describe , expect , it , vi } from "vitest" ;
44import { restartHandlers } from "./restart.js" ;
55
66const requestSafeGatewayRestart = vi . hoisted ( ( ) => vi . fn ( ) ) ;
@@ -21,7 +21,7 @@ vi.mock("../../infra/restart-coordinator.js", () => ({
2121 requestSafeGatewayRestart : ( opts : unknown ) => requestSafeGatewayRestart ( opts ) ,
2222} ) ) ;
2323
24- function invokeRestartRequest ( params : Record < string , unknown > ) {
24+ function invokeRestartRequest ( params : unknown ) {
2525 const respond = vi . fn ( ) ;
2626 const handler = restartHandlers [ "gateway.restart.request" ] ;
2727 return Promise . resolve (
@@ -59,6 +59,10 @@ function expectRestartRequest(skipDeferral: boolean) {
5959}
6060
6161describe ( "gateway.restart.request handler" , ( ) => {
62+ beforeEach ( ( ) => {
63+ requestSafeGatewayRestart . mockClear ( ) ;
64+ } ) ;
65+
6266 it ( "defaults to skipDeferral: false when the param is absent" , async ( ) => {
6367 mockScheduledRestart ( { safe : true , summary : "safe to restart now" } ) ;
6468
@@ -90,4 +94,36 @@ describe("gateway.restart.request handler", () => {
9094
9195 expectRestartRequest ( false ) ;
9296 } ) ;
97+
98+ it ( "rejects non-object params without scheduling a restart" , async ( ) => {
99+ const respond = await invokeRestartRequest ( "operator" ) ;
100+
101+ expect ( requestSafeGatewayRestart ) . not . toHaveBeenCalled ( ) ;
102+ expect ( respond . mock . calls ) . toEqual ( [
103+ [
104+ false ,
105+ undefined ,
106+ {
107+ code : "INVALID_REQUEST" ,
108+ message : "invalid gateway.restart.request params" ,
109+ } ,
110+ ] ,
111+ ] ) ;
112+ } ) ;
113+
114+ it ( "rejects array params without scheduling a restart" , async ( ) => {
115+ const respond = await invokeRestartRequest ( [ ] ) ;
116+
117+ expect ( requestSafeGatewayRestart ) . not . toHaveBeenCalled ( ) ;
118+ expect ( respond . mock . calls ) . toEqual ( [
119+ [
120+ false ,
121+ undefined ,
122+ {
123+ code : "INVALID_REQUEST" ,
124+ message : "invalid gateway.restart.request params" ,
125+ } ,
126+ ] ,
127+ ] ) ;
128+ } ) ;
93129} ) ;
0 commit comments