Saltar al contenido

mocks

Opciones para mockIPC.

shouldMockEvents: Si es verdadero (true), las funciones listen y emit serán simuladas (mocked), permitiéndote probar el manejo de eventos sin un backend real. Esto consumirá cualquier evento emitido con el prefijo plugin:event.

2.7.0

Propiedad Tipo Definido en
shouldMockEvents? boolean Fuente: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/mocks.ts#L24

function clearMocks(): void

Limpia las funciones/datos simulados inyectados por las otras funciones de este módulo. Al usar un ejecutor de pruebas (test runner) que no proporcione un objeto window nuevo para cada prueba, llamar a esta función restablecerá las propiedades específicas de tauri.

import { mockWindows, clearMocks } from "@tauri-apps/api/mocks"
afterEach(() => {
clearMocks()
})
test("mocked windows", () => {
mockWindows("main", "second", "third");
expect(window.__TAURI_INTERNALS__).toHaveProperty("metadata")
})
test("no mocked windows", () => {
expect(window.__TAURI_INTERNALS__).not.toHaveProperty("metadata")
})

void

1.0.0

Fuente: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/mocks.ts#L316


function mockConvertFileSrc(osName): void

Simula la función convertFileSrc

Parámetro Tipo Descripción
osName string El sistema operativo a simular, puede ser linux, macos o windows

void

import { mockConvertFileSrc } from "@tauri-apps/api/mocks";
import { convertFileSrc } from "@tauri-apps/api/core";
mockConvertFileSrc("windows")
const url = convertFileSrc("C:\\Users\\user\\file.txt")

1.6.0

Fuente: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/mocks.ts#L277


function mockIPC(cb, options?): void

Intercepta todas las peticiones IPC con el manejador simulado (mock handler) especificado.

Esta función se puede usar al probar aplicaciones frontend de tauri o al ejecutar el frontend en un contexto de Node.js durante la generación de sitios estáticos.

Configuración de pruebas usando Vitest:

import { mockIPC, clearMocks } from "@tauri-apps/api/mocks"
import { invoke } from "@tauri-apps/api/core"
afterEach(() => {
clearMocks()
})
test("mocked command", () => {
mockIPC((cmd, payload) => {
switch (cmd) {
case "add":
return (payload.a as number) + (payload.b as number);
default:
break;
}
});
expect(invoke('add', { a: 12, b: 15 })).resolves.toBe(27);
})

La función de callback también puede devolver una Promise:

import { mockIPC, clearMocks } from "@tauri-apps/api/mocks"
import { invoke } from "@tauri-apps/api/core"
afterEach(() => {
clearMocks()
})
test("mocked command", () => {
mockIPC((cmd, payload) => {
if(cmd === "get_data") {
return fetch("https://example.com/data.json")
.then((response) => response.json())
}
});
expect(invoke('get_data')).resolves.toBe({ foo: 'bar' });
})

listen también se puede simular con llamadas directas a la función emit. Esta funcionalidad es opcional a través de la opción shouldMockEvents:

import { mockIPC, clearMocks } from "@tauri-apps/api/mocks"
import { emit, listen } from "@tauri-apps/api/event"
afterEach(() => {
clearMocks()
})
test("mocked event", () => {
mockIPC(() => {}, { shouldMockEvents: true }); // enable event mocking
const eventHandler = vi.fn();
listen('test-event', eventHandler); // typically in component setup or similar
emit('test-event', { foo: 'bar' });
expect(eventHandler).toHaveBeenCalledWith({
event: 'test-event',
payload: { foo: 'bar' }
});
})

emitTo actualmente no es compatible con esta implementación simulada.

Parámetro Tipo
cb (cmd, payload?) => unknown
options? MockIPCOptions

void

1.0.0

Fuente: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/mocks.ts#L104


function mockWindows(current, ..._additionalWindows): void

Simula una o muchas etiquetas de ventanas. En un contexto que no sea de tauri, es necesario llamar a esta función antes de usar el módulo @tauri-apps/api/window.

Esta función solo simula la presencia de ventanas, las propiedades de la ventana (por ejemplo, ancho y alto) se pueden simular como llamadas IPC regulares usando la función mockIPC.

import { mockWindows } from "@tauri-apps/api/mocks";
import { getCurrentWindow } from "@tauri-apps/api/window";
mockWindows("main", "second", "third");
const win = getCurrentWindow();
win.label // "main"
import { mockWindows } from "@tauri-apps/api/mocks";
mockWindows("main", "second", "third");
mockIPC((cmd, args) => {
if (cmd === "plugin:event|emit") {
console.log('emit event', args?.event, args?.payload);
}
});
const { emit } = await import("@tauri-apps/api/event");
await emit('loaded'); // this will cause the mocked IPC handler to log to the console.
Parámetro Tipo Descripción
current string Etiqueta de la ventana en la que se está ejecutando este contexto de JavaScript.
_additionalWindows string[] -

void

1.0.0

Fuente: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/mocks.ts#L248


© 2026 Colaboradores de Tauri. CC-BY / MIT