mirror of
https://github.com/streamwall/streamwall.git
synced 2025-12-06 01:45:37 -05:00
Start adding test coverage
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1,2 +1,3 @@
|
||||
node_modules
|
||||
dist
|
||||
coverage
|
||||
@@ -7,7 +7,9 @@
|
||||
"build": "webpack",
|
||||
"start": "npm run build -- --stats=errors-only && electron dist",
|
||||
"start-local": "npm run build -- --stats=errors-only && electron dist --control.address=http://localhost:4444 --control.username=streamwall --control.password=local-dev",
|
||||
"test": "jest"
|
||||
"test": "jest",
|
||||
"test-unit": "jest --testPathIgnorePatterns=src/node/server.test.js",
|
||||
"test-unit-coverage": "jest --coverage --testPathIgnorePatterns=src/node/server.test.js"
|
||||
},
|
||||
"author": "Max Goodhart <c@chromakode.com>",
|
||||
"license": "MIT",
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { boxesFromViewContentMap } from './geometry'
|
||||
import { boxesFromViewContentMap, idxInBox, idxToCoords } from './geometry'
|
||||
|
||||
function example([text]) {
|
||||
return text
|
||||
@@ -89,3 +89,60 @@ describe.each([
|
||||
expect(result).toStrictEqual(expected)
|
||||
})
|
||||
})
|
||||
|
||||
describe('idxToCoords', () => {
|
||||
it('should convert index to coordinates correctly', () => {
|
||||
const gridCount = 5
|
||||
const idx = 12
|
||||
const result = idxToCoords(gridCount, idx)
|
||||
expect(result).toEqual({ x: 2, y: 2 })
|
||||
})
|
||||
|
||||
it('should support the top-left corner', () => {
|
||||
const gridCount = 5
|
||||
const idx = 0
|
||||
const result = idxToCoords(gridCount, idx)
|
||||
expect(result).toEqual({ x: 0, y: 0 })
|
||||
})
|
||||
|
||||
it('should support the top-right corner', () => {
|
||||
const gridCount = 5
|
||||
const idx = 4
|
||||
const result = idxToCoords(gridCount, idx)
|
||||
expect(result).toEqual({ x: 4, y: 0 })
|
||||
})
|
||||
|
||||
it('should support the bottom-left corner', () => {
|
||||
const gridCount = 5
|
||||
const idx = 20
|
||||
const result = idxToCoords(gridCount, idx)
|
||||
expect(result).toEqual({ x: 0, y: 4 })
|
||||
})
|
||||
|
||||
it('should support the bottom-right corner', () => {
|
||||
const gridCount = 5
|
||||
const idx = 24
|
||||
const result = idxToCoords(gridCount, idx)
|
||||
expect(result).toEqual({ x: 4, y: 4 })
|
||||
})
|
||||
})
|
||||
|
||||
describe('idxInBox', () => {
|
||||
it('should return true if index is within the box', () => {
|
||||
const gridCount = 5
|
||||
const start = 0
|
||||
const end = 24
|
||||
const idx = 12
|
||||
const result = idxInBox(gridCount, start, end, idx)
|
||||
expect(result).toBe(true)
|
||||
})
|
||||
|
||||
it('should return false if index is outside the box', () => {
|
||||
const gridCount = 5
|
||||
const start = 0
|
||||
const end = 24
|
||||
const idx = 25
|
||||
const result = idxInBox(gridCount, start, end, idx)
|
||||
expect(result).toBe(false)
|
||||
})
|
||||
})
|
||||
44
src/web/colors.test.js
Normal file
44
src/web/colors.test.js
Normal file
@@ -0,0 +1,44 @@
|
||||
import { hashText, idColor } from './colors'
|
||||
import Color from 'color'
|
||||
|
||||
describe('colors.js tests', () => {
|
||||
describe('hashText', () => {
|
||||
it('should return a number within the provided range', () => {
|
||||
const text = 'test'
|
||||
const range = 100
|
||||
const result = hashText(text, range)
|
||||
expect(typeof result).toBe('number')
|
||||
expect(result).toBeGreaterThanOrEqual(0)
|
||||
expect(result).toBeLessThan(range)
|
||||
})
|
||||
})
|
||||
|
||||
describe('idColor', () => {
|
||||
it('should return a Color object', () => {
|
||||
const id = 'test'
|
||||
const result = idColor(id)
|
||||
expect(result).toBeInstanceOf(Color)
|
||||
})
|
||||
|
||||
it('should return white color for empty id', () => {
|
||||
const id = ''
|
||||
const result = idColor(id)
|
||||
expect(result.hex()).toBe('#FFFFFF')
|
||||
})
|
||||
|
||||
it('should generate the same color for the same id', () => {
|
||||
const id = 'test'
|
||||
const result1 = idColor(id)
|
||||
const result2 = idColor(id)
|
||||
expect(result1.hex()).toBe(result2.hex())
|
||||
})
|
||||
|
||||
it('should generate different colors for different ids', () => {
|
||||
const id1 = 'test1'
|
||||
const id2 = 'test2'
|
||||
const result1 = idColor(id1)
|
||||
const result2 = idColor(id2)
|
||||
expect(result1.hex()).not.toBe(result2.hex())
|
||||
})
|
||||
})
|
||||
})
|
||||
Reference in New Issue
Block a user