Files
Panama/tests/quickshell/HomeAssistantConfigHarness.qml

57 lines
1.5 KiB
QML

import Quickshell
import Quickshell.Io
import QtQuick
import qs.services
ShellRoot {
id: root
property int refreshCalls: 0
FileView {
id: tokenFile
path: Quickshell.env("PANAMA_TEST_TOKEN_FILE")
blockLoading: true
printErrors: false
}
Component.onCompleted: {
HomeAssistant.fixtureMode = true;
HomeAssistantConfig.refreshHomeAssistant = function() { root.refreshCalls++; };
}
IpcHandler {
target: "home-assistant-config-test"
function save(url: string, entities: string): bool {
return HomeAssistantConfig.save(url, entities, "");
}
function saveWithToken(url: string, entities: string): bool {
return HomeAssistantConfig.save(url, entities, tokenFile.text());
}
function clearToken(): bool {
return HomeAssistantConfig.clearToken();
}
function refresh(): void {
HomeAssistantConfig.refresh();
}
function status(): string {
return JSON.stringify({
url: HomeAssistantConfig.url,
entities: HomeAssistantConfig.entities,
tokenConfigured: HomeAssistantConfig.tokenConfigured,
configured: HomeAssistantConfig.configured,
busy: HomeAssistantConfig.busy,
lastError: HomeAssistantConfig.lastError,
pendingPayloadEmpty: HomeAssistantConfig.pendingPayload === "",
refreshCalls: root.refreshCalls
});
}
}
}