Ability to auto-discover sonos devices or find by using a seed ip

This commit is contained in:
simojenki
2021-01-29 16:54:38 +11:00
parent 45fe62841f
commit 5cd98a5ea6
12 changed files with 2881 additions and 578 deletions

View File

@@ -1,7 +0,0 @@
import { expect } from "chai";
describe("something", () => {
it("fails", () => {
expect(true).equal(true);
});
});

46
tests/index.test.ts Normal file
View File

@@ -0,0 +1,46 @@
import request from "supertest";
import makeServer from "../src/server";
import { SONOS_DISABLED, Sonos } from "../src/sonos";
describe("index", () => {
describe("when sonos integration is disabled", () => {
const server = makeServer(SONOS_DISABLED);
describe("devices list", () => {
it("should be empty", async () => {
const res = await request(server).get("/").send();
expect(res.status).toEqual(200);
expect(res.text).not.toMatch(/class=device/)
});
});
});
describe("when sonos integration is enabled", () => {
const fakeSonos: Sonos = {
devices: () => [{
name: "device1",
group: "group1",
ip: "172.0.0.1",
port: 4301
},{
name: "device2",
group: "group2",
ip: "172.0.0.2",
port: 4302
}]
}
const server = makeServer(fakeSonos);
describe("devices list", () => {
it("should contain the devices returned from sonos", async () => {
const res = await request(server).get("/").send();
expect(res.status).toEqual(200);
expect(res.text).toMatch(/device1\s+\(172.0.0.1:4301\)/)
expect(res.text).toMatch(/device2\s+\(172.0.0.2:4302\)/)
});
});
});
});