How to mock IPC calls in electron when using WebDriverIO with Mocha

I have an electron-vite-react application that has several IPC calls from browser to main process. I want to mock the behavior of these IPC calls when I’m writing e2e tests for the app using WebDriverIO framework with Mocha tests. I have tried several ways described in the docs, but could not get it worked. Can anybody explain how do I start with this?

For example, I have a function in my react part like this.

export const isConnectedToCloud = async () => {
  const cloudUrl = await window.electronAPI.getCloudUrl()
  console.log('cloudUrl', cloudUrl)
  return cloudUrl !== '' ? true : false
}

It is called inside a useEffect of a Component to render different views based on the output. Now I want to mock that behavior in my test file which looks like this;

describe('Display Connect/Disconnect buttons', () => {

  // Case 1: Cloud is connected
  // TODO: Mock the isConnectedToCloud function to return true
  it('should show Connect button', async () => {
    // button is inside a div with id cloud-connect
    const button = await $('div#cloud-connect button')
    // button should be displayed
    expect(button).toBeDisplayed()
    // button should contain text 'Connect'
    expect(button).toHaveText('Connect')
  })

  // Case 2: Cloud is disconnected
  // TODO: Mock the isConnectedToCloud function to return false
  it('should show Disconnect button', async () => {
    // button is inside a div with id cloud-connect
    const button = await $('div#cloud-connect button')
    // button should be displayed
    expect(button).toBeDisplayed()
    // button should contain text 'Disconnect'
    expect(button).toHaveText('Disconnect')
  })

})

Appreciate the thoughts