mirror of
https://github.com/Quad4-Software/MeshChatX.git
synced 2026-08-18 09:49:09 -04:00
44 lines
1.6 KiB
JavaScript
44 lines
1.6 KiB
JavaScript
|
|
import { describe, it, expect, vi, beforeEach } from "vitest";
|
||
|
|
import AndroidStorageBridge from "../../meshchatx/src/frontend/js/AndroidStorageBridge.js";
|
||
|
|
|
||
|
|
describe("AndroidStorageBridge", () => {
|
||
|
|
let bridge;
|
||
|
|
|
||
|
|
beforeEach(() => {
|
||
|
|
bridge = new AndroidStorageBridge({
|
||
|
|
getPlatform: () => "android",
|
||
|
|
getAndroidStorageStatus: () =>
|
||
|
|
JSON.stringify({
|
||
|
|
needs_setup_choice: true,
|
||
|
|
active_mode: "external",
|
||
|
|
}),
|
||
|
|
setAndroidStorageMode: vi.fn(),
|
||
|
|
markAndroidStorageSetupCompleted: vi.fn(),
|
||
|
|
restartApp: vi.fn(),
|
||
|
|
});
|
||
|
|
});
|
||
|
|
|
||
|
|
it("getStatus parses JSON from native bridge", () => {
|
||
|
|
expect(bridge.getStatus()).toEqual({
|
||
|
|
needs_setup_choice: true,
|
||
|
|
active_mode: "external",
|
||
|
|
});
|
||
|
|
});
|
||
|
|
|
||
|
|
it("applySetupChoice restarts when mode differs from active", () => {
|
||
|
|
const native = bridge.android.bridge;
|
||
|
|
const result = bridge.applySetupChoice("internal", { active_mode: "external" });
|
||
|
|
expect(native.setAndroidStorageMode).toHaveBeenCalledWith("internal");
|
||
|
|
expect(native.markAndroidStorageSetupCompleted).toHaveBeenCalled();
|
||
|
|
expect(native.restartApp).toHaveBeenCalled();
|
||
|
|
expect(result.restarted).toBe(true);
|
||
|
|
});
|
||
|
|
|
||
|
|
it("applySetupChoice skips restart when mode matches active", () => {
|
||
|
|
const native = bridge.android.bridge;
|
||
|
|
const result = bridge.applySetupChoice("external", { active_mode: "external" });
|
||
|
|
expect(native.restartApp).not.toHaveBeenCalled();
|
||
|
|
expect(result.restarted).toBe(false);
|
||
|
|
});
|
||
|
|
});
|