11// Copyright 2020-2026 The MathWorks, Inc.
22
3+ import { jest , describe , it , expect , afterEach } from "@jest/globals" ;
34import { promises as fs } from "fs" ;
45import * as path from "path" ;
56import * as matlab from "./matlab.js" ;
7+ import type { ExecFn } from "./matlab.js" ;
68
79afterEach ( ( ) => {
810 jest . resetAllMocks ( ) ;
@@ -62,7 +64,7 @@ describe("run command", () => {
6264
6365 it ( "ideally works" , async ( ) => {
6466 const chmod = jest . spyOn ( fs , "chmod" ) ;
65- const execFn = jest . fn ( ) ;
67+ const execFn = jest . fn < ExecFn > ( ) ;
6668
6769 chmod . mockResolvedValue ( undefined ) ;
6870 execFn . mockResolvedValue ( 0 ) ;
@@ -73,21 +75,21 @@ describe("run command", () => {
7375
7476 it ( "ideally works with arguments" , async ( ) => {
7577 const chmod = jest . spyOn ( fs , "chmod" ) ;
76- const execFn = jest . fn ( ) ;
78+ const execFn = jest . fn < ExecFn > ( ) ;
7779
7880 chmod . mockResolvedValue ( undefined ) ;
7981 execFn . mockResolvedValue ( 0 ) ;
8082
8183 const actual = matlab . runCommand ( helperScript , platform , architecture , execFn , [ "-nojvm" , "-logfile" , "file" ] ) ;
8284 await expect ( actual ) . resolves . toBeUndefined ( ) ;
83- expect ( execFn . mock . calls [ 0 ] [ 1 ] [ 1 ] ) . toBe ( "-nojvm" ) ;
84- expect ( execFn . mock . calls [ 0 ] [ 1 ] [ 2 ] ) . toBe ( "-logfile" ) ;
85- expect ( execFn . mock . calls [ 0 ] [ 1 ] [ 3 ] ) . toBe ( "file" ) ;
85+ expect ( execFn . mock . calls [ 0 ] [ 1 ] ! [ 1 ] ) . toBe ( "-nojvm" ) ;
86+ expect ( execFn . mock . calls [ 0 ] [ 1 ] ! [ 2 ] ) . toBe ( "-logfile" ) ;
87+ expect ( execFn . mock . calls [ 0 ] [ 1 ] ! [ 3 ] ) . toBe ( "file" ) ;
8688 } ) ;
8789
8890 it ( "fails when chmod fails" , async ( ) => {
8991 const chmod = jest . spyOn ( fs , "chmod" ) ;
90- const execFn = jest . fn ( ) ;
92+ const execFn = jest . fn < ExecFn > ( ) ;
9193
9294 chmod . mockRejectedValue ( null ) ;
9395
@@ -99,7 +101,7 @@ describe("run command", () => {
99101
100102 it ( "fails when the execFn fails" , async ( ) => {
101103 const chmod = jest . spyOn ( fs , "chmod" ) ;
102- const execFn = jest . fn ( ) ;
104+ const execFn = jest . fn < ExecFn > ( ) ;
103105
104106 chmod . mockResolvedValue ( undefined ) ;
105107 execFn . mockRejectedValue ( null ) ;
@@ -112,7 +114,7 @@ describe("run command", () => {
112114
113115 it ( "fails when the execFn has a non-zero exit code" , async ( ) => {
114116 const chmod = jest . spyOn ( fs , "chmod" ) ;
115- const execFn = jest . fn ( ) ;
117+ const execFn = jest . fn < ExecFn > ( ) ;
116118
117119 chmod . mockResolvedValue ( undefined ) ;
118120 execFn . mockResolvedValue ( 1 ) ;
0 commit comments