mirror of
https://github.com/Permissionless-Software-Foundation/psf-bch-api.git
synced 2026-09-21 16:52:00 -07:00
64 lines
1.5 KiB
JavaScript
64 lines
1.5 KiB
JavaScript
/*
|
|||
|
|
Unit tests for Server class.
|
||
|
|
Note: Full server testing requires integration tests due to ES module limitations.
|
||
|
|
These tests focus on testable logic.
|
||
|
|
*/
|
||
|
|
|
||
|
|
// npm libraries
|
||
|
|
import { assert } from 'chai'
|
||
|
|
import sinon from 'sinon'
|
||
|
|
|
||
|
|
// Unit under test
|
||
|
|
import Server from '../../../bin/server.js'
|
||
|
|
|
||
|
|
describe('#server.js', () => {
|
||
|
|
let sandbox
|
||
|
|
let uut
|
||
|
|
|
||
|
|
beforeEach(() => {
|
||
|
|
sandbox = sinon.createSandbox()
|
||
|
|
uut = new Server()
|
||
|
|
})
|
||
|
|
|
||
|
|
afterEach(() => {
|
||
|
|
sandbox.restore()
|
||
|
|
})
|
||
|
|
|
||
|
|
describe('#startServer()', () => {
|
||
|
|
// Note: Full server startup testing requires integration tests
|
||
|
|
// due to ES module import limitations with Express and Controllers
|
||
|
|
it('should have startServer method', () => {
|
||
|
|
assert.isFunction(uut.startServer)
|
||
|
|
})
|
||
|
|
|
||
|
|
it('should have controllers property', () => {
|
||
|
|
assert.property(uut, 'controllers')
|
||
|
|
})
|
||
|
|
|
||
|
|
it('should have config property', () => {
|
||
|
|
assert.property(uut, 'config')
|
||
|
|
})
|
||
|
|
})
|
||
|
|
|
||
|
|
describe('#sleep()', () => {
|
||
|
|
it('should sleep for specified milliseconds', async () => {
|
||
|
|
const start = Date.now()
|
||
|
|
await uut.sleep(50)
|
||
|
|
const end = Date.now()
|
||
|
|
|
||
|
|
// Should have slept at least 50ms (allowing some margin)
|
||
|
|
assert.isAtLeast(end - start, 40)
|
||
|
|
})
|
||
|
|
})
|
||
|
|
|
||
|
|
describe('#constructor()', () => {
|
||
|
|
it('should initialize with controllers and config', () => {
|
||
|
|
const server = new Server()
|
||
|
|
|
||
|
|
assert.property(server, 'controllers')
|
||
|
|
assert.property(server, 'config')
|
||
|
|
assert.property(server, 'process')
|
||
|
|
})
|
||
|
|
})
|
||
|
|
})
|