expected spy to have been called at least once but was never called

How to fix this error –

AssertError: expected spy to have been called at least once but was never called

describe('subscribe()', () => {
    let subscription: subscriptionType;
    let eventCallbackSpy: SinonSpy = Sinon.spy();
    let track : Track;
    let videoTrack: MediaStreamTrack;

    describe('track mute event & publisher', () => {
      const mockDeviceAudio = {
        ID: '47dd6c612bb77e7992cb8f026b660c59648e8105baf4c569f96d226738add9a4',
        groupId: '99782d7b13f331947c1a9865b27cf7eabffbfd48cfe21ab99867d101c6d7b4d0',
        kind: DeviceKinds.AUDIO_INPUT,
        label: 'Fake Audio Input 1',
        mediaDeviceInfo: null,
      };

      const mockDeviceVideo = {
        ID: '47dd6c612bb77e7992cb8f026b660c59648e8105baf4c569f96d226738add9a4',
        groupId: '99782d7b13f331947c1a9865b27cf7eabffbfd48cfe21ab99867d101c6d7b4d0',
        kind: DeviceKinds.VIDEO_INPUT,
        label: 'Fake Video Input 1',
        mediaDeviceInfo: null,
      };

      before(async () => {
        [videoTrack] = (await navigator.mediaDevices.getUserMedia({video: true})).getVideoTracks();
        track = new Track(videoTrack as MediaStreamTrack);
        setupMediaTrackMocks();
        subscription = await track.subscribe('track:mute', eventCallbackSpy);
      });

      after(() => {
        resetMediaTrackMocks();
      });

      it('should have subscribe, track mute event available', () => {
        expect(subscription.listener.method).to.be.equal(eventCallbackSpy);
        expect(subscriptions.events['track:mute'].get(subscription.listener.id)).to.be.equal(eventCallbackSpy);
      });

      it('should have track object from the library (instanceof Track)', async () => {
        eventCallbackSpy = Sinon.spy();
        subscriptions.events['track:mute'].set(subscription.listener.id, eventCallbackSpy);
        Sinon.assert.called(eventCallbackSpy);
        console.log("log ", eventCallbackSpy.getCall(0));
        expect(eventCallbackSpy.getCall(0).args[0].action);
        // making sure track object from the library(instanceof Track)
        expect(eventCallbackSpy.getCall(0).args[0].track).to.be.an.instanceof(Track);
      });

This test is given error –

track mute event & publisher
        ✖ should have track object from the library (instanceof Track)
          Chrome Headless 93.0.4577.0 (Mac OS 10.15.7)
        AssertError: expected spy to have been called at least once but was never called

This is my subscribe –

async subscribe(eventName: string, listener: () => void): Promise<subscription> {
    const subscriptionListener = {
      id: uuidv4(),
      method: listener,
    };
  
    subscriptions.events[eventName].set(subscriptionListener.id, subscriptionListener.method);
    const thisEventListeners = subscriptions.events[eventName];
  
    switch (eventName) {
      case 'track:mute': {
        if (thisEventListeners.size === 1) {
          this.#mediaStreamTrack.onmute = (event) => {
            // using arrow function which should bind to this from outer scope track
            trackMutePublisher(event, this);
          }
        } 
        break;
      }
  
      default:
        break;
    }
  
    return new Promise((resolve) => {
      resolve({
        type: eventName,
        listener: subscriptionListener,
      });
    });
  }

In Test I am trying to check Sinon.assert.called(eventCallbackSpy); but still it’s giving the error expected spy to have been called at least once but was never called

Please help me.