@@ -1588,12 +1588,15 @@ describe("toggleMute", () => {
15881588 } ) ;
15891589} ) ;
15901590
1591+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- test mocks for Web Audio API
1592+ type MockAny = any ;
1593+
15911594describe ( "sound playback" , ( ) => {
1592- let mockOscillator : any ;
1593- let mockGain : any ;
1594- let mockCompressor : any ;
1595- let mockCtx : any ;
1596- let OriginalAudioContext : any ;
1595+ let mockOscillator : MockAny ;
1596+ let mockGain : MockAny ;
1597+ let mockCompressor : MockAny ;
1598+ let mockCtx : MockAny ;
1599+ let OriginalAudioContext : MockAny ;
15971600
15981601 beforeEach ( ( ) => {
15991602 resetAudioContext ( ) ;
@@ -1633,8 +1636,8 @@ describe("sound playback", () => {
16331636 resume : vi . fn ( ) ,
16341637 close : vi . fn ( ) ,
16351638 } ;
1636- OriginalAudioContext = ( window as any ) . AudioContext ;
1637- ( window as any ) . AudioContext = vi . fn ( function ( this : any ) {
1639+ OriginalAudioContext = ( window as MockAny ) . AudioContext ;
1640+ ( window as MockAny ) . AudioContext = vi . fn ( function ( this : MockAny ) {
16381641 return Object . assign ( this , mockCtx ) ;
16391642 } ) ;
16401643 vi . useFakeTimers ( ) ;
@@ -1644,9 +1647,9 @@ describe("sound playback", () => {
16441647 vi . useRealTimers ( ) ;
16451648 resetAudioContext ( ) ;
16461649 if ( OriginalAudioContext ) {
1647- ( window as any ) . AudioContext = OriginalAudioContext ;
1650+ ( window as MockAny ) . AudioContext = OriginalAudioContext ;
16481651 } else {
1649- delete ( window as any ) . AudioContext ;
1652+ delete ( window as MockAny ) . AudioContext ;
16501653 }
16511654 } ) ;
16521655
@@ -1777,8 +1780,8 @@ describe("sound playback", () => {
17771780} ) ;
17781781
17791782describe ( "audio session unlock" , ( ) => {
1780- let mockCtx : any ;
1781- let mockAudioPlay : any ;
1783+ let mockCtx : MockAny ;
1784+ let mockAudioPlay : MockAny ;
17821785
17831786 beforeEach ( ( ) => {
17841787 resetAudioContext ( ) ;
@@ -1790,12 +1793,12 @@ describe("audio session unlock", () => {
17901793 createGain : vi . fn ( ) ,
17911794 resume : vi . fn ( ) ,
17921795 } ;
1793- ( window as any ) . AudioContext = vi . fn ( function ( this : any ) {
1796+ ( window as MockAny ) . AudioContext = vi . fn ( function ( this : MockAny ) {
17941797 return Object . assign ( this , mockCtx ) ;
17951798 } ) ;
17961799
17971800 mockAudioPlay = vi . fn ( ( ) => Promise . resolve ( ) ) ;
1798- vi . stubGlobal ( "Audio" , vi . fn ( function ( this : any ) {
1801+ vi . stubGlobal ( "Audio" , vi . fn ( function ( this : MockAny ) {
17991802 this . play = mockAudioPlay ;
18001803 return this ;
18011804 } ) ) ;
@@ -1804,13 +1807,13 @@ describe("audio session unlock", () => {
18041807 afterEach ( ( ) => {
18051808 resetAudioContext ( ) ;
18061809 vi . unstubAllGlobals ( ) ;
1807- delete ( navigator as any ) . audioSession ;
1810+ delete ( navigator as MockAny ) . audioSession ;
18081811 } ) ;
18091812
18101813 it ( "plays silent WAV via Audio element to unlock iOS audio session" , ( ) => {
18111814 resumeAudioContext ( ) ;
1812- expect ( ( window as any ) . Audio ) . toHaveBeenCalled ( ) ;
1813- const src = ( window as any ) . Audio . mock . calls [ 0 ] [ 0 ] ;
1815+ expect ( ( window as MockAny ) . Audio ) . toHaveBeenCalled ( ) ;
1816+ const src = ( window as MockAny ) . Audio . mock . calls [ 0 ] [ 0 ] ;
18141817 expect ( src ) . toContain ( "data:audio/wav;base64," ) ;
18151818 expect ( mockAudioPlay ) . toHaveBeenCalled ( ) ;
18161819 } ) ;
@@ -1832,13 +1835,13 @@ describe("audio session unlock", () => {
18321835
18331836 it ( "sets navigator.audioSession.type to ambient when available" , ( ) => {
18341837 const mockSession = { type : "playback" } ;
1835- ( navigator as any ) . audioSession = mockSession ;
1838+ ( navigator as MockAny ) . audioSession = mockSession ;
18361839 resumeAudioContext ( ) ;
18371840 expect ( mockSession . type ) . toBe ( "ambient" ) ;
18381841 } ) ;
18391842
18401843 it ( "does not throw when navigator.audioSession is unavailable" , ( ) => {
1841- delete ( navigator as any ) . audioSession ;
1844+ delete ( navigator as MockAny ) . audioSession ;
18421845 expect ( ( ) => resumeAudioContext ( ) ) . not . toThrow ( ) ;
18431846 } ) ;
18441847} ) ;
0 commit comments