test: wait for Home Assistant restart

This commit is contained in:
ajnart committed 2026-07-29 21:18:35 +02:00
1 parent b025cc593c
commit 7fec6c8a07
1 file changed
+20
@@ -77,9 +77,29 @@ const prepareHomeAssistantContainerAsync = async () => {
const startedContainer = await homeAssistantContainer.start();
await startedContainer.exec(["unzip", "-o", "/tmp/config.zip", "-d", "/config"]);
await startedContainer.restart();
await waitForHomeAssistantAsync(startedContainer);
return startedContainer;
};
const waitForHomeAssistantAsync = async (container: StartedTestContainer) => {
const url = `http://${container.getHost()}:${container.getMappedPort(8123)}/api/config`;
for (let attempt = 0; attempt < 40; attempt++) {
try {
const response = await fetch(url, {
headers: { Authorization: `Bearer ${DEFAULT_API_KEY}` },
});
if (response.ok) return;
} catch {
// Home Assistant is still restarting.
}
await new Promise((resolve) => setTimeout(resolve, 500));
}
throw new Error("Home Assistant did not become ready after restart");
};
const createHomeAssistantContainer = () => {
return (
new GenericContainer(IMAGE_NAME)