FPGA_WebLab/server/database.test.ts

40 lines
1020 B
TypeScript

import { test, expect } from "bun:test"
import * as db from "./database.ts"
import _ from "lodash"
import { randomFromArray } from "./common.ts"
import { None, Ok } from "ts-results-es"
test("DataBase", () => {
const allTables = db.allTables()
expect(allTables).toBeArray()
expect(allTables).toEqual(["Users", "Boards"])
expect(db.BoardTable.count()).toBe(0)
expect(db.UserTable.count()).toBe(0)
})
test("Board Table", () => {
const boardsNumber = 10
const rooms = ["A1", "A2"]
// Try to find something empty
const findEmptyByID = db.BoardTable.find(_.random(0, boardsNumber))
expect(findEmptyByID).toEqual(Ok(None))
const findEmptyByName = db.BoardTable.find("Hello")
expect(findEmptyByName).toEqual(Ok(None))
const boardsArray: Array<db.Board> = []
for (let i = 0; i < boardsNumber; i++) {
boardsArray.push({
id: _.random(0, 100),
name: `Board ${i}`,
room: randomFromArray(rooms),
ipv4: `192.168.172.${i}`,
port: _.random(0, 665535),
})
}
})