Cloning the project and running tests on my computer (which is running MacOS 12.7.5) causes a bunch of errors. Some of these are expected (such as errors connecting to MongoDB or Docker, which aren't installed) but others seem to be bugs. In particular:
LOCAL_DIR points to the grandparent of the project directory and causes all the LRU caching tests to fail with permission denied.
secureMode doesn't initialize or run
Most tests with secureMode enabled fail
There's also some warnings about circular dependencies. Not sure if those can be ignored or if they're symptoms of an actual issue.
Also, a more general question: is this project still being developed/maintained? Looks like the last commit was a few years ago, curious if you've moved on to other things. This project seems like it's really useful and I can't find any OSS that serves the same purpose.
The full test log is below, if it helps:
> dimensions-ai@5.1.3 clean
> ./cleanup.sh
./tests/kits/java/kit/Agent.class
./tests/kits/java/Bot.class
./tests/kits/go/bot.out
./tests/kits/cpp/bot.out
./tests/kits/c/bot.out
./tests/kits/ts/kit.js
./tests/kits/ts/bot.js
./tests/kits/ts/parser.js
> dimensions-ai@5.1.3 test-seed
> node tests/seed/seedmongo.js
(node:82477) Warning: Accessing non-existent property 'count' of module exports inside circular dependency
(Use `node --trace-warnings ...` to show where the warning was created)
(node:82477) Warning: Accessing non-existent property 'findOne' of module exports inside circular dependency
(node:82477) Warning: Accessing non-existent property 'remove' of module exports inside circular dependency
(node:82477) Warning: Accessing non-existent property 'updateOne' of module exports inside circular dependency
Error [MongoSeedingError]: Error: Timeout 10000s expired while connecting to database due to: MongoNetworkError: connect ECONNREFUSED 127.0.0.1:27017
at wrapError (/Users/qpwoeirut/OtherProgramming/Dimensions/node_modules/mongo-seeding/dist/index.js:112:19)
at Seeder.<anonymous> (/Users/qpwoeirut/OtherProgramming/Dimensions/node_modules/mongo-seeding/dist/index.js:90:23)
at Generator.throw (<anonymous>)
at rejected (/Users/qpwoeirut/OtherProgramming/Dimensions/node_modules/mongo-seeding/dist/index.js:6:65)
at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
Testing Agent
Testing Agent Errors
✓ should throw directory errors
✓ should throw file errors
Testing Agent Initialization
✓ should work in non-securemode
✓ should work in securemode
Testing Database with Tournament Singletons (no distribution)
1) "before all" hook in "Testing Database with Tournament Singletons (no distribution)"
connection error: MongooseError [MongooseServerSelectionError]:
at new MongooseServerSelectionError (/Users/qpwoeirut/OtherProgramming/Dimensions/node_modules/mongoose/lib/error/serverSelection.js:22:11)
at NativeConnection.Connection.openUri (/Users/qpwoeirut/OtherProgramming/Dimensions/node_modules/mongoose/lib/connection.js:823:32)
at Mongoose.connect (/Users/qpwoeirut/OtherProgramming/Dimensions/node_modules/mongoose/lib/index.js:333:15)
at MongoDB.<anonymous> (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:4:322)
at step (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:1:68488)
at Object.next (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:1:65352)
at /Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:1:64444
at new Promise (<anonymous>)
at __awaiter (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:1:63601)
at MongoDB.connect (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:4:129)
at MongoDB.<anonymous> (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:4:1012)
at step (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:1:68488)
at Object.next (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:1:65352)
at /Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:1:64444
at new Promise (<anonymous>)
at __awaiter (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:1:63601)
at MongoDB.initialize (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:4:715)
at Dimension.<anonymous> (/Users/qpwoeirut/OtherProgramming/Dimensions/src/Dimension/index.ts:117:50)
at step (/Users/qpwoeirut/OtherProgramming/Dimensions/src/Dimension/index.ts:1:70896)
at Object.next (/Users/qpwoeirut/OtherProgramming/Dimensions/src/Dimension/index.ts:1:67764)
at /Users/qpwoeirut/OtherProgramming/Dimensions/src/Dimension/index.ts:1:66866
at new Promise (<anonymous>)
at __awaiter (/Users/qpwoeirut/OtherProgramming/Dimensions/src/Dimension/index.ts:1:66037)
at Dimension.use (/Users/qpwoeirut/OtherProgramming/Dimensions/src/Dimension/index.ts:116:6)
at /Users/qpwoeirut/OtherProgramming/Dimensions/tests/core/database/01-database.tourney.spec.ts:73:13
at step (/Users/qpwoeirut/OtherProgramming/Dimensions/tests/core/database/01-database.tourney.spec.ts:33:23)
at Object.next (/Users/qpwoeirut/OtherProgramming/Dimensions/tests/core/database/01-database.tourney.spec.ts:14:53)
at /Users/qpwoeirut/OtherProgramming/Dimensions/tests/core/database/01-database.tourney.spec.ts:8:71
at new Promise (<anonymous>)
at __awaiter (/Users/qpwoeirut/OtherProgramming/Dimensions/tests/core/database/01-database.tourney.spec.ts:4:12)
at Context.<anonymous> (/Users/qpwoeirut/OtherProgramming/Dimensions/tests/core/database/01-database.tourney.spec.ts:72:10)
at callFn (/Users/qpwoeirut/OtherProgramming/Dimensions/node_modules/mocha/lib/runnable.js:395:21)
at Hook.Runnable.run (/Users/qpwoeirut/OtherProgramming/Dimensions/node_modules/mocha/lib/runnable.js:382:7)
at next (/Users/qpwoeirut/OtherProgramming/Dimensions/node_modules/mocha/lib/runner.js:389:10)
at Immediate.<anonymous> (/Users/qpwoeirut/OtherProgramming/Dimensions/node_modules/mocha/lib/runner.js:433:5)
at processImmediate (node:internal/timers:491:21) {
reason: TopologyDescription {
type: 'Single',
setName: null,
maxSetVersion: null,
maxElectionId: null,
servers: Map(1) { 'localhost:27017' => [ServerDescription] },
stale: false,
compatible: true,
compatibilityError: null,
logicalSessionTimeoutMinutes: null,
heartbeatFrequencyMS: 10000,
localThresholdMS: 15,
commonWireVersion: null
},
[Symbol(mongoErrorContextSymbol)]: {}
}
Testing Dimension Class
[WARN] (dimension_t2zX67 Log) - WARNING: Running in non-secure mode. You will not be protected against malicious bots
[INFO] (dimension_t2zX67 Log) - Created Dimension - ID: t2zX67, Name: dimension_t2zX67
✓ should initialize a dimension with default params correctly
✓ should initialize tournaments correctly
✓ should be able to create matches and with matching configs
✓ should be able to remove matches in any state
✓ should not be able to remove non-existent matches
Testing MatchEngine Core
Test configurations
✓ should be initialized with a match correctly when using defaults
✓ should be initialized with a match correctly when using overriden
Test initialization
✓ should store relevant processes
✓ should store relevant memory watcher intervals
✓ should store idToAgents map in match
✓ should initialize all agents as running
Test running
- should allow stderr output from agents
✓ should call matchEngine kill twice only for 2 agent matches
Test FINISH_SYMBOL policy
✓ should handle commands when using the default FINISH_SYMBOL policy
✓ should erase extraneous output after finish symbol
Test LINE_COUNT policy
✓ should handle commands when using the default configs
✓ should handle commands when setting max lines to more than 1
Testing engine processing of agent output commands
✓ should allow for delayed newline characters and use the _buffer store in agent correctly
✓ should ignore extra newlines if newline was already sent
Testing engine handling of agent 'close' event
✓ should terminate the agent internally as well if agent prematurely exits
Test secureMode
2) should initialize correctly
3) should run correctly
Test compilation step
4) should throw error for bot going over compile time limit and mark agent as crashed; secureMode: true
✓ should throw error for bot going over compile time limit and mark agent as crashed; secureMode: false
Test install step
5) should throw error for bot going over install time limit and mark agent as crashed; secureMode: true
✓ should throw error for bot going over install time limit and mark agent as crashed; secureMode: false
Test custom designs
✓ should initialize correctly
✓ should run correctly
Testing MatchEngine Timeout Mechanism
Test timeout mechanism
✓ should timeout bots accordingly; secureMode: true
✓ should timeout bots accordingly; secureMode: false
✓ should allow for custom timeout functions
✓ should allow for turning off timeout
Testing MatchEngine Memory Limit Mechanism
Test memory limit mechanism
6) should kill bots accordingly if past memory limit; secureMode: true
✓ should kill bots accordingly if past memory limit; secureMode: false
- should allow for custom memory limit reached functions
✓ should allow for turning off memory limit
Testing MatchEngine Multi Language Support
Testing langs with secureMode: true
Test python
7) should run
Test typescript
8) should run
Test java
9) should run
Test c++
10) should run
Test c
11) should run
Test go
12) should run
Test php
13) should run
Testing langs with secureMode: false
Test python
✓ should run
Test typescript
✓ should run (6998ms)
Test java
✓ should run
Test c++
✓ should run
✓ should run compiled executable as well
Test c
✓ should run
Test go
✓ should run
Test php
14) should run
cleaned up
Test Logger
✓ Default INFO level logging
[INFO] (Log) - hello-info
[WARN] (Log) - hello-warn
[ERROR] (Log) - hello-error
✓ Level INFO
[SYSTEM] (Log) - hello-sys
[DETAIL] (Log) - hello-det
[INFO] (Log) - hello-info
[WARN] (Log) - hello-warn
[ERROR] (Log) - hello-error
✓ Level SYSTEM
[SYSTEM I/O] (Log) - hello-sysIO
[SYSTEM] (Log) - hello-sys
[DETAIL] (Log) - hello-det
[INFO] (Log) - hello-info
[WARN] (Log) - hello-warn
[ERROR] (Log) - hello-error
✓ Level ALL
-=-=-=-=-=-=-=-=-=-=-=-| [SYSTEM I/O] Log |-=-=-=-=-=-=-=-=-=-=-=-
-=-=-=-=-=-=-=-=-=-=-=-| [SYSTEM] Log |-=-=-=-=-=-=-=-=-=-=-=-
-=-=-=-=-=-=-=-=-=-=-=-| [ERROR] Log |-=-=-=-=-=-=-=-=-=-=-=-
-=-=-=-=-=-=-=-=-=-=-=-| [WARN] Log |-=-=-=-=-=-=-=-=-=-=-=-
-=-=-=-=-=-=-=-=-=-=-=-| [INFO] Log |-=-=-=-=-=-=-=-=-=-=-=-
-=-=-=-=-=-=-=-=-=-=-=-| [DETAIL] Log |-=-=-=-=-=-=-=-=-=-=-=-
[IMPORTANT] (Log) - hello-important
-=-=-=-=-=-=-=-=-=-=-=-| [IMPORTANT] Log |-=-=-=-=-=-=-=-=-=-=-=-
✓ Level ALL, printing bars
✓ Level ALL, printing bars
Testing Match Core
Test configurations
✓ should be initialized correctly to the dimension defaults
Test initialization
✓ should generate 2 agents for a 2 agent RPS match
✓ should call initialization function of the design
✓ match should have ready status
Test running
✓ should run correctly
✓ should resume and stop correctly
✓ should throw errors trying to stop/resume when not allowed
Test secureMode
15) should initialize correctly
16) should run correctly
✓ should resume and stop correctly
Test custom designs
✓ should run correctly
✓ should resume and stop correctly
Testing Match Detached Mode
✓ should run
✓ should return match status when calling match.step()
✓ should keep track of agent messages written to it
Test ELO System
✓ should initialize ELO ratings correctly
should evaluate ratings correctly
✓ should calculate 1v1 scores correctly
✓ should calculate n agent scores correctly
Testing Storage with Tournament Singletons (no distribution)
17) "before all" hook in "Testing Storage with Tournament Singletons (no distribution)"
connection error: MongooseError [MongooseServerSelectionError]:
at new MongooseServerSelectionError (/Users/qpwoeirut/OtherProgramming/Dimensions/node_modules/mongoose/lib/error/serverSelection.js:22:11)
at NativeConnection.Connection.openUri (/Users/qpwoeirut/OtherProgramming/Dimensions/node_modules/mongoose/lib/connection.js:823:32)
at Mongoose.connect (/Users/qpwoeirut/OtherProgramming/Dimensions/node_modules/mongoose/lib/index.js:333:15)
at MongoDB.<anonymous> (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:4:322)
at step (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:1:68488)
at Object.next (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:1:65352)
at /Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:1:64444
at new Promise (<anonymous>)
at __awaiter (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:1:63601)
at MongoDB.connect (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:4:129)
at MongoDB.<anonymous> (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:4:1012)
at step (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:1:68488)
at Object.next (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:1:65352)
at /Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:1:64444
at new Promise (<anonymous>)
at __awaiter (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:1:63601)
at MongoDB.initialize (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:4:715)
at Dimension.<anonymous> (/Users/qpwoeirut/OtherProgramming/Dimensions/src/Dimension/index.ts:117:50)
at step (/Users/qpwoeirut/OtherProgramming/Dimensions/src/Dimension/index.ts:1:70896)
at Object.next (/Users/qpwoeirut/OtherProgramming/Dimensions/src/Dimension/index.ts:1:67764)
at /Users/qpwoeirut/OtherProgramming/Dimensions/src/Dimension/index.ts:1:66866
at new Promise (<anonymous>)
at __awaiter (/Users/qpwoeirut/OtherProgramming/Dimensions/src/Dimension/index.ts:1:66037)
at Dimension.use (/Users/qpwoeirut/OtherProgramming/Dimensions/src/Dimension/index.ts:116:6)
at /Users/qpwoeirut/OtherProgramming/Dimensions/tests/core/storage/01-storage.tourney.spec.ts:74:13
at step (/Users/qpwoeirut/OtherProgramming/Dimensions/tests/core/storage/01-storage.tourney.spec.ts:33:23)
at Object.next (/Users/qpwoeirut/OtherProgramming/Dimensions/tests/core/storage/01-storage.tourney.spec.ts:14:53)
at /Users/qpwoeirut/OtherProgramming/Dimensions/tests/core/storage/01-storage.tourney.spec.ts:8:71
at new Promise (<anonymous>)
at __awaiter (/Users/qpwoeirut/OtherProgramming/Dimensions/tests/core/storage/01-storage.tourney.spec.ts:4:12)
at Context.<anonymous> (/Users/qpwoeirut/OtherProgramming/Dimensions/tests/core/storage/01-storage.tourney.spec.ts:73:10)
at callFn (/Users/qpwoeirut/OtherProgramming/Dimensions/node_modules/mocha/lib/runnable.js:395:21)
at Hook.Runnable.run (/Users/qpwoeirut/OtherProgramming/Dimensions/node_modules/mocha/lib/runnable.js:382:7)
at next (/Users/qpwoeirut/OtherProgramming/Dimensions/node_modules/mocha/lib/runner.js:389:10)
at Immediate.<anonymous> (/Users/qpwoeirut/OtherProgramming/Dimensions/node_modules/mocha/lib/runner.js:433:5)
at processImmediate (node:internal/timers:491:21) {
reason: TopologyDescription {
type: 'Single',
setName: null,
maxSetVersion: null,
maxElectionId: null,
servers: Map(1) { 'localhost:27017' => [ServerDescription] },
stale: false,
compatible: true,
compatibilityError: null,
logicalSessionTimeoutMinutes: null,
heartbeatFrequencyMS: 10000,
localThresholdMS: 15,
commonWireVersion: null
},
[Symbol(mongoErrorContextSymbol)]: {}
}
Testing Storage with Matches Singletons
18) "before all" hook for "should trim long error log files"
connection error: MongooseError [MongooseServerSelectionError]:
at new MongooseServerSelectionError (/Users/qpwoeirut/OtherProgramming/Dimensions/node_modules/mongoose/lib/error/serverSelection.js:22:11)
at NativeConnection.Connection.openUri (/Users/qpwoeirut/OtherProgramming/Dimensions/node_modules/mongoose/lib/connection.js:823:32)
at Mongoose.connect (/Users/qpwoeirut/OtherProgramming/Dimensions/node_modules/mongoose/lib/index.js:333:15)
at MongoDB.<anonymous> (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:4:322)
at step (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:1:68488)
at Object.next (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:1:65352)
at /Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:1:64444
at new Promise (<anonymous>)
at __awaiter (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:1:63601)
at MongoDB.connect (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:4:129)
at MongoDB.<anonymous> (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:4:1012)
at step (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:1:68488)
at Object.next (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:1:65352)
at /Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:1:64444
at new Promise (<anonymous>)
at __awaiter (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:1:63601)
at MongoDB.initialize (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:4:715)
at Dimension.<anonymous> (/Users/qpwoeirut/OtherProgramming/Dimensions/src/Dimension/index.ts:117:50)
at step (/Users/qpwoeirut/OtherProgramming/Dimensions/src/Dimension/index.ts:1:70896)
at Object.next (/Users/qpwoeirut/OtherProgramming/Dimensions/src/Dimension/index.ts:1:67764)
at /Users/qpwoeirut/OtherProgramming/Dimensions/src/Dimension/index.ts:1:66866
at new Promise (<anonymous>)
at __awaiter (/Users/qpwoeirut/OtherProgramming/Dimensions/src/Dimension/index.ts:1:66037)
at Dimension.use (/Users/qpwoeirut/OtherProgramming/Dimensions/src/Dimension/index.ts:116:6)
at /Users/qpwoeirut/OtherProgramming/Dimensions/tests/core/storage/02-storage.match.spec.ts:68:13
at step (/Users/qpwoeirut/OtherProgramming/Dimensions/tests/core/storage/02-storage.match.spec.ts:33:23)
at Object.next (/Users/qpwoeirut/OtherProgramming/Dimensions/tests/core/storage/02-storage.match.spec.ts:14:53)
at /Users/qpwoeirut/OtherProgramming/Dimensions/tests/core/storage/02-storage.match.spec.ts:8:71
at new Promise (<anonymous>)
at __awaiter (/Users/qpwoeirut/OtherProgramming/Dimensions/tests/core/storage/02-storage.match.spec.ts:4:12)
at Context.<anonymous> (/Users/qpwoeirut/OtherProgramming/Dimensions/tests/core/storage/02-storage.match.spec.ts:67:10)
at callFn (/Users/qpwoeirut/OtherProgramming/Dimensions/node_modules/mocha/lib/runnable.js:395:21)
at Hook.Runnable.run (/Users/qpwoeirut/OtherProgramming/Dimensions/node_modules/mocha/lib/runnable.js:382:7)
at next (/Users/qpwoeirut/OtherProgramming/Dimensions/node_modules/mocha/lib/runner.js:389:10)
at Immediate.<anonymous> (/Users/qpwoeirut/OtherProgramming/Dimensions/node_modules/mocha/lib/runner.js:433:5)
at processImmediate (node:internal/timers:491:21) {
reason: TopologyDescription {
type: 'Single',
setName: null,
maxSetVersion: null,
maxElectionId: null,
servers: Map(1) { 'localhost:27017' => [ServerDescription] },
stale: false,
compatible: true,
compatibilityError: null,
logicalSessionTimeoutMinutes: null,
heartbeatFrequencyMS: 10000,
localThresholdMS: 15,
commonWireVersion: null
},
[Symbol(mongoErrorContextSymbol)]: {}
}
Testing Tournament Core
Test Configurations
✓ should adopt same match configs as dimension defaults
✓ should allow overrided id, name, log level
Test functions
✓ should get player stat
Testing Ladder Tournament Core
Test running
✓ should run (2002ms)
✓ should run and stop
✓ should run when given rank system object (2001ms)
Test disable players
✓ should disable players and throw error if player does not exist
✓ shouldn't run players that are disabled (2002ms)
Test add/update/remove anonymous players
✓ should add players
✓ should update players before start
✓ should update players mid tourney
✓ should remove players
✓ should remove players mid tourney
✓ should add and remove players (2003ms)
Reset rankings
✓ should work for ELO (2008ms)
✓ should work for Trueskill (2002ms)
Test setting time limits and max match limits
✓ should stop after a certain time (5000ms)
✓ should stop after some matches
Test selfMatchMake config
✓ should not schedule matches if set to false
Testing Elimination Tournament Core
Test running
✓ should run
Testing LRU File Caching system
19) should cache files
20) should throw out least used file
21) should throw out several least used files to make space for large file
22) should throw out least used files and allow them to be put back in
23) should throw out least used file when the same files are added and thrown out
24) should work when there is only one file in cache and perform get operations
Testing /api/dimensions API
(node:82502) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 21 SIGINT listeners added to [process]. MaxListeners is 20. Use emitter.setMaxListeners() to increase limit
(Use `node --trace-warnings ...` to show where the warning was created)
(node:82502) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 21 exit listeners added to [process]. MaxListeners is 20. Use emitter.setMaxListeners() to increase limit
✓ GET /api/dimensions should retrieve all dimensions
✓ GET /api/dimensions/:dimensionID - should retrieve dimension with id dimensionID
✓ GET /api/dimensions/:dimensionID - should return 400, no dimension found, if fake id provided
Testing /api/dimensions/:dimensionID/match API
✓ GET /api/dimensions/:dimensionID/match - should return all matches
✓ GET /api/dimensions/:dimensionID/match/:matchID - should return match with id matchID
✓ GET /api/dimensions/:dimensionID/match/:matchID - should return 400, no match found, if fake id provided
✓ GET /api/dimensions/:dimensionID/match/:matchID/results - should return match results for match with id matchID
✓ GET /api/dimensions/:dimensionID/match/:matchID/state - should return match state for match with id matchID
✓ POST /api/dimensions/:dimensionID/match/:matchID/run - should run/resume match with id matchID if match is ready or stopped
✓ POST /api/dimensions/:dimensionID/match/:matchID/run - should run/resume match with id matchID if match is finished
✓ POST /api/dimensions/:dimensionID/match/:matchID/run - should return 400, match already running, if match already running
✓ POST /api/dimensions/:dimensionID/match/:matchID/stop - should stop match with id matchID
✓ POST /api/dimensions/:dimensionID/match/:matchID/stop - should return 400, match can't be stopped while in uninitialized, ready, stopped, or finished conditions
Testing /api/dimensions/:dimensionID/match/:matchID/agent API
✓ GET /api/dimensions/:dimensionID/match/:matchID/agents - should return all agents
✓ GET /api/dimensions/:dimensionID/match/:matchID/agents/:agentID - should return agent with id agentID
✓ GET /api/dimensions/:dimensionID/match/:matchID/agents/:agentID - should return 400, if agent with id agentID does not exist
Testing /api/dimensions/:dimensionID/tournaments API
25) "before all" hook for "GET /api/dimensions/:dimensionID/tournaments - should return all tournaments"
connection error: MongooseError [MongooseServerSelectionError]:
at new MongooseServerSelectionError (/Users/qpwoeirut/OtherProgramming/Dimensions/node_modules/mongoose/lib/error/serverSelection.js:22:11)
at NativeConnection.Connection.openUri (/Users/qpwoeirut/OtherProgramming/Dimensions/node_modules/mongoose/lib/connection.js:823:32)
at Mongoose.connect (/Users/qpwoeirut/OtherProgramming/Dimensions/node_modules/mongoose/lib/index.js:333:15)
at MongoDB.<anonymous> (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:4:322)
at step (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:1:68488)
at Object.next (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:1:65352)
at /Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:1:64444
at new Promise (<anonymous>)
at __awaiter (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:1:63601)
at MongoDB.connect (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:4:129)
at MongoDB.<anonymous> (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:4:1012)
at step (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:1:68488)
at Object.next (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:1:65352)
at /Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:1:64444
at new Promise (<anonymous>)
at __awaiter (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:1:63601)
at MongoDB.initialize (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:4:715)
at Dimension.<anonymous> (/Users/qpwoeirut/OtherProgramming/Dimensions/src/Dimension/index.ts:117:50)
at step (/Users/qpwoeirut/OtherProgramming/Dimensions/src/Dimension/index.ts:1:70896)
at Object.next (/Users/qpwoeirut/OtherProgramming/Dimensions/src/Dimension/index.ts:1:67764)
at /Users/qpwoeirut/OtherProgramming/Dimensions/src/Dimension/index.ts:1:66866
at new Promise (<anonymous>)
at __awaiter (/Users/qpwoeirut/OtherProgramming/Dimensions/src/Dimension/index.ts:1:66037)
at Dimension.use (/Users/qpwoeirut/OtherProgramming/Dimensions/src/Dimension/index.ts:116:6)
at /Users/qpwoeirut/OtherProgramming/Dimensions/tests/api/04-dimensions.tournament.spec.ts:91:21
at step (/Users/qpwoeirut/OtherProgramming/Dimensions/tests/api/04-dimensions.tournament.spec.ts:33:23)
at Object.next (/Users/qpwoeirut/OtherProgramming/Dimensions/tests/api/04-dimensions.tournament.spec.ts:14:53)
at /Users/qpwoeirut/OtherProgramming/Dimensions/tests/api/04-dimensions.tournament.spec.ts:8:71
at new Promise (<anonymous>)
at __awaiter (/Users/qpwoeirut/OtherProgramming/Dimensions/tests/api/04-dimensions.tournament.spec.ts:4:12)
at Context.<anonymous> (/Users/qpwoeirut/OtherProgramming/Dimensions/tests/api/04-dimensions.tournament.spec.ts:72:10)
at callFn (/Users/qpwoeirut/OtherProgramming/Dimensions/node_modules/mocha/lib/runnable.js:395:21)
at Hook.Runnable.run (/Users/qpwoeirut/OtherProgramming/Dimensions/node_modules/mocha/lib/runnable.js:382:7)
at next (/Users/qpwoeirut/OtherProgramming/Dimensions/node_modules/mocha/lib/runner.js:389:10)
at Immediate.<anonymous> (/Users/qpwoeirut/OtherProgramming/Dimensions/node_modules/mocha/lib/runner.js:433:5)
at processImmediate (node:internal/timers:491:21) {
reason: TopologyDescription {
type: 'Single',
setName: null,
maxSetVersion: null,
maxElectionId: null,
servers: Map(1) { 'localhost:27017' => [ServerDescription] },
stale: false,
compatible: true,
compatibilityError: null,
logicalSessionTimeoutMinutes: null,
heartbeatFrequencyMS: 10000,
localThresholdMS: 15,
commonWireVersion: null
},
[Symbol(mongoErrorContextSymbol)]: {}
}
Testing /api/dimensions/:dimensionID/users API
26) "before all" hook for "GET /api/dimensions/:dimensionID/users/:userID - should return user with id userID"
connection error: MongooseError [MongooseServerSelectionError]:
at new MongooseServerSelectionError (/Users/qpwoeirut/OtherProgramming/Dimensions/node_modules/mongoose/lib/error/serverSelection.js:22:11)
at NativeConnection.Connection.openUri (/Users/qpwoeirut/OtherProgramming/Dimensions/node_modules/mongoose/lib/connection.js:823:32)
at Mongoose.connect (/Users/qpwoeirut/OtherProgramming/Dimensions/node_modules/mongoose/lib/index.js:333:15)
at MongoDB.<anonymous> (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:4:322)
at step (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:1:68488)
at Object.next (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:1:65352)
at /Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:1:64444
at new Promise (<anonymous>)
at __awaiter (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:1:63601)
at MongoDB.connect (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:4:129)
at MongoDB.<anonymous> (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:4:1012)
at step (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:1:68488)
at Object.next (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:1:65352)
at /Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:1:64444
at new Promise (<anonymous>)
at __awaiter (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:1:63601)
at MongoDB.initialize (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:4:715)
at Dimension.<anonymous> (/Users/qpwoeirut/OtherProgramming/Dimensions/src/Dimension/index.ts:117:50)
at step (/Users/qpwoeirut/OtherProgramming/Dimensions/src/Dimension/index.ts:1:70896)
at Object.next (/Users/qpwoeirut/OtherProgramming/Dimensions/src/Dimension/index.ts:1:67764)
at /Users/qpwoeirut/OtherProgramming/Dimensions/src/Dimension/index.ts:1:66866
at new Promise (<anonymous>)
at __awaiter (/Users/qpwoeirut/OtherProgramming/Dimensions/src/Dimension/index.ts:1:66037)
at Dimension.use (/Users/qpwoeirut/OtherProgramming/Dimensions/src/Dimension/index.ts:116:6)
at /Users/qpwoeirut/OtherProgramming/Dimensions/tests/api/05-dimensions.api.spec.ts:39:13
at step (/Users/qpwoeirut/OtherProgramming/Dimensions/tests/api/05-dimensions.api.spec.ts:33:23)
at Object.next (/Users/qpwoeirut/OtherProgramming/Dimensions/tests/api/05-dimensions.api.spec.ts:14:53)
at /Users/qpwoeirut/OtherProgramming/Dimensions/tests/api/05-dimensions.api.spec.ts:8:71
at new Promise (<anonymous>)
at __awaiter (/Users/qpwoeirut/OtherProgramming/Dimensions/tests/api/05-dimensions.api.spec.ts:4:12)
at Context.<anonymous> (/Users/qpwoeirut/OtherProgramming/Dimensions/tests/api/05-dimensions.api.spec.ts:26:10)
at callFn (/Users/qpwoeirut/OtherProgramming/Dimensions/node_modules/mocha/lib/runnable.js:395:21)
at Hook.Runnable.run (/Users/qpwoeirut/OtherProgramming/Dimensions/node_modules/mocha/lib/runnable.js:382:7)
at next (/Users/qpwoeirut/OtherProgramming/Dimensions/node_modules/mocha/lib/runner.js:389:10)
at Immediate.<anonymous> (/Users/qpwoeirut/OtherProgramming/Dimensions/node_modules/mocha/lib/runner.js:433:5)
at processImmediate (node:internal/timers:491:21) {
reason: TopologyDescription {
type: 'Single',
setName: null,
maxSetVersion: null,
maxElectionId: null,
servers: Map(1) { 'localhost:27017' => [ServerDescription] },
stale: false,
compatible: true,
compatibilityError: null,
logicalSessionTimeoutMinutes: null,
heartbeatFrequencyMS: 10000,
localThresholdMS: 15,
commonWireVersion: null
},
[Symbol(mongoErrorContextSymbol)]: {}
}
98 passing (4m)
2 pending
26 failing
1) Testing Database with Tournament Singletons (no distribution)
"before all" hook in "Testing Database with Tournament Singletons (no distribution)":
Uncaught
MongooseServerSelectionError:
at new MongooseServerSelectionError (/Users/qpwoeirut/OtherProgramming/Dimensions/node_modules/mongoose/lib/error/serverSelection.js:22:11)
at NativeConnection.Connection.openUri (/Users/qpwoeirut/OtherProgramming/Dimensions/node_modules/mongoose/lib/connection.js:823:32)
at Mongoose.connect (/Users/qpwoeirut/OtherProgramming/Dimensions/node_modules/mongoose/lib/index.js:333:15)
at MongoDB.<anonymous> (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:4:322)
at step (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:1:68488)
at Object.next (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:1:65352)
at /Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:1:64444
at new Promise (<anonymous>)
at __awaiter (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:1:63601)
at MongoDB.connect (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:4:129)
at MongoDB.<anonymous> (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:4:1012)
at step (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:1:68488)
at Object.next (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:1:65352)
at /Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:1:64444
at new Promise (<anonymous>)
at __awaiter (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:1:63601)
at MongoDB.initialize (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:4:715)
at Dimension.<anonymous> (/Users/qpwoeirut/OtherProgramming/Dimensions/src/Dimension/index.ts:117:50)
at step (/Users/qpwoeirut/OtherProgramming/Dimensions/src/Dimension/index.ts:1:70896)
at Object.next (/Users/qpwoeirut/OtherProgramming/Dimensions/src/Dimension/index.ts:1:67764)
at /Users/qpwoeirut/OtherProgramming/Dimensions/src/Dimension/index.ts:1:66866
at new Promise (<anonymous>)
at __awaiter (/Users/qpwoeirut/OtherProgramming/Dimensions/src/Dimension/index.ts:1:66037)
at Dimension.use (/Users/qpwoeirut/OtherProgramming/Dimensions/src/Dimension/index.ts:116:6)
at /Users/qpwoeirut/OtherProgramming/Dimensions/tests/core/database/01-database.tourney.spec.ts:73:13
at step (/Users/qpwoeirut/OtherProgramming/Dimensions/tests/core/database/01-database.tourney.spec.ts:33:23)
at Object.next (/Users/qpwoeirut/OtherProgramming/Dimensions/tests/core/database/01-database.tourney.spec.ts:14:53)
at /Users/qpwoeirut/OtherProgramming/Dimensions/tests/core/database/01-database.tourney.spec.ts:8:71
at new Promise (<anonymous>)
at __awaiter (/Users/qpwoeirut/OtherProgramming/Dimensions/tests/core/database/01-database.tourney.spec.ts:4:12)
at Context.<anonymous> (/Users/qpwoeirut/OtherProgramming/Dimensions/tests/core/database/01-database.tourney.spec.ts:72:10)
at callFn (/Users/qpwoeirut/OtherProgramming/Dimensions/node_modules/mocha/lib/runnable.js:395:21)
at Hook.Runnable.run (/Users/qpwoeirut/OtherProgramming/Dimensions/node_modules/mocha/lib/runnable.js:382:7)
at next (/Users/qpwoeirut/OtherProgramming/Dimensions/node_modules/mocha/lib/runner.js:389:10)
at Immediate.<anonymous> (/Users/qpwoeirut/OtherProgramming/Dimensions/node_modules/mocha/lib/runner.js:433:5)
at processImmediate (node:internal/timers:491:21)
2) Testing MatchEngine Core
Test secureMode
should initialize correctly:
Error: connect ENOENT /var/run/docker.sock
at PipeConnectWrap.afterConnect [as oncomplete] (node:net:1606:16)
3) Testing MatchEngine Core
Test secureMode
should run correctly:
Error: connect ENOENT /var/run/docker.sock
at PipeConnectWrap.afterConnect [as oncomplete] (node:net:1606:16)
4) Testing MatchEngine Core
Test compilation step
should throw error for bot going over compile time limit and mark agent as crashed; secureMode: true:
AssertionError: expected promise to be rejected with 'AgentCompileTimeoutError' but it was rejected with 'Error: connect ENOENT /var/run/docker.sock'
+ expected - actual
-Error: connect ENOENT /var/run/docker.sock
+AgentCompileTimeoutError
5) Testing MatchEngine Core
Test install step
should throw error for bot going over install time limit and mark agent as crashed; secureMode: true:
AssertionError: expected promise to be rejected with 'AgentInstallTimeoutError' but it was rejected with 'Error: connect ENOENT /var/run/docker.sock'
+ expected - actual
-Error: connect ENOENT /var/run/docker.sock
+AgentInstallTimeoutError
6) Testing MatchEngine Memory Limit Mechanism
Test memory limit mechanism
should kill bots accordingly if past memory limit; secureMode: true:
Error: connect ENOENT /var/run/docker.sock
at PipeConnectWrap.afterConnect [as oncomplete] (node:net:1606:16)
7) Testing MatchEngine Multi Language Support
Testing langs with secureMode: true
Test python
should run:
Error: connect ENOENT /var/run/docker.sock
at PipeConnectWrap.afterConnect [as oncomplete] (node:net:1606:16)
8) Testing MatchEngine Multi Language Support
Testing langs with secureMode: true
Test typescript
should run:
Error: connect ENOENT /var/run/docker.sock
at PipeConnectWrap.afterConnect [as oncomplete] (node:net:1606:16)
9) Testing MatchEngine Multi Language Support
Testing langs with secureMode: true
Test java
should run:
Error: connect ENOENT /var/run/docker.sock
at PipeConnectWrap.afterConnect [as oncomplete] (node:net:1606:16)
10) Testing MatchEngine Multi Language Support
Testing langs with secureMode: true
Test c++
should run:
Error: connect ENOENT /var/run/docker.sock
at PipeConnectWrap.afterConnect [as oncomplete] (node:net:1606:16)
11) Testing MatchEngine Multi Language Support
Testing langs with secureMode: true
Test c
should run:
Error: connect ENOENT /var/run/docker.sock
at PipeConnectWrap.afterConnect [as oncomplete] (node:net:1606:16)
12) Testing MatchEngine Multi Language Support
Testing langs with secureMode: true
Test go
should run:
Error: connect ENOENT /var/run/docker.sock
at PipeConnectWrap.afterConnect [as oncomplete] (node:net:1606:16)
13) Testing MatchEngine Multi Language Support
Testing langs with secureMode: true
Test php
should run:
Error: connect ENOENT /var/run/docker.sock
at PipeConnectWrap.afterConnect [as oncomplete] (node:net:1606:16)
14) Testing MatchEngine Multi Language Support
Testing langs with secureMode: false
Test php
should run:
Error: Timeout of 60000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves. (/Users/qpwoeirut/OtherProgramming/Dimensions/tests/core/engine/04-engine.language.spec.ts)
at Test.Runnable._timeoutError (/Users/qpwoeirut/OtherProgramming/Dimensions/node_modules/mocha/lib/runnable.js:463:10)
at Timeout.<anonymous> (/Users/qpwoeirut/OtherProgramming/Dimensions/node_modules/mocha/lib/runnable.js:267:24)
at listOnTimeout (node:internal/timers:594:17)
at processTimers (node:internal/timers:529:7)
15) Testing Match Core
Test secureMode
should initialize correctly:
Error: connect ENOENT /var/run/docker.sock
at PipeConnectWrap.afterConnect [as oncomplete] (node:net:1606:16)
16) Testing Match Core
Test secureMode
should run correctly:
Error: connect ENOENT /var/run/docker.sock
at PipeConnectWrap.afterConnect [as oncomplete] (node:net:1606:16)
17) Testing Storage with Tournament Singletons (no distribution)
"before all" hook in "Testing Storage with Tournament Singletons (no distribution)":
Uncaught
MongooseServerSelectionError:
at new MongooseServerSelectionError (/Users/qpwoeirut/OtherProgramming/Dimensions/node_modules/mongoose/lib/error/serverSelection.js:22:11)
at NativeConnection.Connection.openUri (/Users/qpwoeirut/OtherProgramming/Dimensions/node_modules/mongoose/lib/connection.js:823:32)
at Mongoose.connect (/Users/qpwoeirut/OtherProgramming/Dimensions/node_modules/mongoose/lib/index.js:333:15)
at MongoDB.<anonymous> (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:4:322)
at step (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:1:68488)
at Object.next (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:1:65352)
at /Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:1:64444
at new Promise (<anonymous>)
at __awaiter (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:1:63601)
at MongoDB.connect (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:4:129)
at MongoDB.<anonymous> (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:4:1012)
at step (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:1:68488)
at Object.next (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:1:65352)
at /Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:1:64444
at new Promise (<anonymous>)
at __awaiter (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:1:63601)
at MongoDB.initialize (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:4:715)
at Dimension.<anonymous> (/Users/qpwoeirut/OtherProgramming/Dimensions/src/Dimension/index.ts:117:50)
at step (/Users/qpwoeirut/OtherProgramming/Dimensions/src/Dimension/index.ts:1:70896)
at Object.next (/Users/qpwoeirut/OtherProgramming/Dimensions/src/Dimension/index.ts:1:67764)
at /Users/qpwoeirut/OtherProgramming/Dimensions/src/Dimension/index.ts:1:66866
at new Promise (<anonymous>)
at __awaiter (/Users/qpwoeirut/OtherProgramming/Dimensions/src/Dimension/index.ts:1:66037)
at Dimension.use (/Users/qpwoeirut/OtherProgramming/Dimensions/src/Dimension/index.ts:116:6)
at /Users/qpwoeirut/OtherProgramming/Dimensions/tests/core/storage/01-storage.tourney.spec.ts:74:13
at step (/Users/qpwoeirut/OtherProgramming/Dimensions/tests/core/storage/01-storage.tourney.spec.ts:33:23)
at Object.next (/Users/qpwoeirut/OtherProgramming/Dimensions/tests/core/storage/01-storage.tourney.spec.ts:14:53)
at /Users/qpwoeirut/OtherProgramming/Dimensions/tests/core/storage/01-storage.tourney.spec.ts:8:71
at new Promise (<anonymous>)
at __awaiter (/Users/qpwoeirut/OtherProgramming/Dimensions/tests/core/storage/01-storage.tourney.spec.ts:4:12)
at Context.<anonymous> (/Users/qpwoeirut/OtherProgramming/Dimensions/tests/core/storage/01-storage.tourney.spec.ts:73:10)
at callFn (/Users/qpwoeirut/OtherProgramming/Dimensions/node_modules/mocha/lib/runnable.js:395:21)
at Hook.Runnable.run (/Users/qpwoeirut/OtherProgramming/Dimensions/node_modules/mocha/lib/runnable.js:382:7)
at next (/Users/qpwoeirut/OtherProgramming/Dimensions/node_modules/mocha/lib/runner.js:389:10)
at Immediate.<anonymous> (/Users/qpwoeirut/OtherProgramming/Dimensions/node_modules/mocha/lib/runner.js:433:5)
at processImmediate (node:internal/timers:491:21)
18) Testing Storage with Matches Singletons
"before all" hook for "should trim long error log files":
Uncaught
MongooseServerSelectionError:
at new MongooseServerSelectionError (/Users/qpwoeirut/OtherProgramming/Dimensions/node_modules/mongoose/lib/error/serverSelection.js:22:11)
at NativeConnection.Connection.openUri (/Users/qpwoeirut/OtherProgramming/Dimensions/node_modules/mongoose/lib/connection.js:823:32)
at Mongoose.connect (/Users/qpwoeirut/OtherProgramming/Dimensions/node_modules/mongoose/lib/index.js:333:15)
at MongoDB.<anonymous> (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:4:322)
at step (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:1:68488)
at Object.next (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:1:65352)
at /Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:1:64444
at new Promise (<anonymous>)
at __awaiter (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:1:63601)
at MongoDB.connect (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:4:129)
at MongoDB.<anonymous> (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:4:1012)
at step (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:1:68488)
at Object.next (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:1:65352)
at /Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:1:64444
at new Promise (<anonymous>)
at __awaiter (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:1:63601)
at MongoDB.initialize (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:4:715)
at Dimension.<anonymous> (/Users/qpwoeirut/OtherProgramming/Dimensions/src/Dimension/index.ts:117:50)
at step (/Users/qpwoeirut/OtherProgramming/Dimensions/src/Dimension/index.ts:1:70896)
at Object.next (/Users/qpwoeirut/OtherProgramming/Dimensions/src/Dimension/index.ts:1:67764)
at /Users/qpwoeirut/OtherProgramming/Dimensions/src/Dimension/index.ts:1:66866
at new Promise (<anonymous>)
at __awaiter (/Users/qpwoeirut/OtherProgramming/Dimensions/src/Dimension/index.ts:1:66037)
at Dimension.use (/Users/qpwoeirut/OtherProgramming/Dimensions/src/Dimension/index.ts:116:6)
at /Users/qpwoeirut/OtherProgramming/Dimensions/tests/core/storage/02-storage.match.spec.ts:68:13
at step (/Users/qpwoeirut/OtherProgramming/Dimensions/tests/core/storage/02-storage.match.spec.ts:33:23)
at Object.next (/Users/qpwoeirut/OtherProgramming/Dimensions/tests/core/storage/02-storage.match.spec.ts:14:53)
at /Users/qpwoeirut/OtherProgramming/Dimensions/tests/core/storage/02-storage.match.spec.ts:8:71
at new Promise (<anonymous>)
at __awaiter (/Users/qpwoeirut/OtherProgramming/Dimensions/tests/core/storage/02-storage.match.spec.ts:4:12)
at Context.<anonymous> (/Users/qpwoeirut/OtherProgramming/Dimensions/tests/core/storage/02-storage.match.spec.ts:67:10)
at callFn (/Users/qpwoeirut/OtherProgramming/Dimensions/node_modules/mocha/lib/runnable.js:395:21)
at Hook.Runnable.run (/Users/qpwoeirut/OtherProgramming/Dimensions/node_modules/mocha/lib/runnable.js:382:7)
at next (/Users/qpwoeirut/OtherProgramming/Dimensions/node_modules/mocha/lib/runner.js:389:10)
at Immediate.<anonymous> (/Users/qpwoeirut/OtherProgramming/Dimensions/node_modules/mocha/lib/runner.js:433:5)
at processImmediate (node:internal/timers:491:21)
19) Testing LRU File Caching system
should cache files:
Error: EACCES: permission denied, mkdir '/Users/local/cache_test_1/key1'
at Object.mkdirSync (node:fs:1363:26)
at LRUFileCache.<anonymous> (/Users/qpwoeirut/OtherProgramming/Dimensions/src/utils/LRUFileCache.ts:16:276)
at step (/Users/qpwoeirut/OtherProgramming/Dimensions/src/utils/LRUFileCache.ts:1:40289)
at Object.next (/Users/qpwoeirut/OtherProgramming/Dimensions/src/utils/LRUFileCache.ts:1:37243)
at fulfilled (/Users/qpwoeirut/OtherProgramming/Dimensions/src/utils/LRUFileCache.ts:1:35791)
20) Testing LRU File Caching system
should throw out least used file:
Error: EACCES: permission denied, mkdir '/Users/local/cache_test_2/key1'
at Object.mkdirSync (node:fs:1363:26)
at LRUFileCache.<anonymous> (/Users/qpwoeirut/OtherProgramming/Dimensions/src/utils/LRUFileCache.ts:16:276)
at step (/Users/qpwoeirut/OtherProgramming/Dimensions/src/utils/LRUFileCache.ts:1:40289)
at Object.next (/Users/qpwoeirut/OtherProgramming/Dimensions/src/utils/LRUFileCache.ts:1:37243)
at fulfilled (/Users/qpwoeirut/OtherProgramming/Dimensions/src/utils/LRUFileCache.ts:1:35791)
21) Testing LRU File Caching system
should throw out several least used files to make space for large file:
Error: EACCES: permission denied, mkdir '/Users/local/cache_test_3/key1'
at Object.mkdirSync (node:fs:1363:26)
at LRUFileCache.<anonymous> (/Users/qpwoeirut/OtherProgramming/Dimensions/src/utils/LRUFileCache.ts:16:276)
at step (/Users/qpwoeirut/OtherProgramming/Dimensions/src/utils/LRUFileCache.ts:1:40289)
at Object.next (/Users/qpwoeirut/OtherProgramming/Dimensions/src/utils/LRUFileCache.ts:1:37243)
at fulfilled (/Users/qpwoeirut/OtherProgramming/Dimensions/src/utils/LRUFileCache.ts:1:35791)
22) Testing LRU File Caching system
should throw out least used files and allow them to be put back in:
Error: EACCES: permission denied, mkdir '/Users/local/cache_test_4/key1'
at Object.mkdirSync (node:fs:1363:26)
at LRUFileCache.<anonymous> (/Users/qpwoeirut/OtherProgramming/Dimensions/src/utils/LRUFileCache.ts:16:276)
at step (/Users/qpwoeirut/OtherProgramming/Dimensions/src/utils/LRUFileCache.ts:1:40289)
at Object.next (/Users/qpwoeirut/OtherProgramming/Dimensions/src/utils/LRUFileCache.ts:1:37243)
at fulfilled (/Users/qpwoeirut/OtherProgramming/Dimensions/src/utils/LRUFileCache.ts:1:35791)
23) Testing LRU File Caching system
should throw out least used file when the same files are added and thrown out:
Error: EACCES: permission denied, mkdir '/Users/local/cache_test_5/key1'
at Object.mkdirSync (node:fs:1363:26)
at LRUFileCache.<anonymous> (/Users/qpwoeirut/OtherProgramming/Dimensions/src/utils/LRUFileCache.ts:16:276)
at step (/Users/qpwoeirut/OtherProgramming/Dimensions/src/utils/LRUFileCache.ts:1:40289)
at Object.next (/Users/qpwoeirut/OtherProgramming/Dimensions/src/utils/LRUFileCache.ts:1:37243)
at fulfilled (/Users/qpwoeirut/OtherProgramming/Dimensions/src/utils/LRUFileCache.ts:1:35791)
24) Testing LRU File Caching system
should work when there is only one file in cache and perform get operations:
Error: EACCES: permission denied, mkdir '/Users/local/cache_test_5/key1'
at Object.mkdirSync (node:fs:1363:26)
at LRUFileCache.<anonymous> (/Users/qpwoeirut/OtherProgramming/Dimensions/src/utils/LRUFileCache.ts:16:276)
at step (/Users/qpwoeirut/OtherProgramming/Dimensions/src/utils/LRUFileCache.ts:1:40289)
at Object.next (/Users/qpwoeirut/OtherProgramming/Dimensions/src/utils/LRUFileCache.ts:1:37243)
at fulfilled (/Users/qpwoeirut/OtherProgramming/Dimensions/src/utils/LRUFileCache.ts:1:35791)
25) Testing /api/dimensions/:dimensionID/tournaments API
"before all" hook for "GET /api/dimensions/:dimensionID/tournaments - should return all tournaments":
Uncaught
MongooseServerSelectionError:
at new MongooseServerSelectionError (/Users/qpwoeirut/OtherProgramming/Dimensions/node_modules/mongoose/lib/error/serverSelection.js:22:11)
at NativeConnection.Connection.openUri (/Users/qpwoeirut/OtherProgramming/Dimensions/node_modules/mongoose/lib/connection.js:823:32)
at Mongoose.connect (/Users/qpwoeirut/OtherProgramming/Dimensions/node_modules/mongoose/lib/index.js:333:15)
at MongoDB.<anonymous> (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:4:322)
at step (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:1:68488)
at Object.next (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:1:65352)
at /Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:1:64444
at new Promise (<anonymous>)
at __awaiter (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:1:63601)
at MongoDB.connect (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:4:129)
at MongoDB.<anonymous> (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:4:1012)
at step (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:1:68488)
at Object.next (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:1:65352)
at /Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:1:64444
at new Promise (<anonymous>)
at __awaiter (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:1:63601)
at MongoDB.initialize (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:4:715)
at Dimension.<anonymous> (/Users/qpwoeirut/OtherProgramming/Dimensions/src/Dimension/index.ts:117:50)
at step (/Users/qpwoeirut/OtherProgramming/Dimensions/src/Dimension/index.ts:1:70896)
at Object.next (/Users/qpwoeirut/OtherProgramming/Dimensions/src/Dimension/index.ts:1:67764)
at /Users/qpwoeirut/OtherProgramming/Dimensions/src/Dimension/index.ts:1:66866
at new Promise (<anonymous>)
at __awaiter (/Users/qpwoeirut/OtherProgramming/Dimensions/src/Dimension/index.ts:1:66037)
at Dimension.use (/Users/qpwoeirut/OtherProgramming/Dimensions/src/Dimension/index.ts:116:6)
at /Users/qpwoeirut/OtherProgramming/Dimensions/tests/api/04-dimensions.tournament.spec.ts:91:21
at step (/Users/qpwoeirut/OtherProgramming/Dimensions/tests/api/04-dimensions.tournament.spec.ts:33:23)
at Object.next (/Users/qpwoeirut/OtherProgramming/Dimensions/tests/api/04-dimensions.tournament.spec.ts:14:53)
at /Users/qpwoeirut/OtherProgramming/Dimensions/tests/api/04-dimensions.tournament.spec.ts:8:71
at new Promise (<anonymous>)
at __awaiter (/Users/qpwoeirut/OtherProgramming/Dimensions/tests/api/04-dimensions.tournament.spec.ts:4:12)
at Context.<anonymous> (/Users/qpwoeirut/OtherProgramming/Dimensions/tests/api/04-dimensions.tournament.spec.ts:72:10)
at callFn (/Users/qpwoeirut/OtherProgramming/Dimensions/node_modules/mocha/lib/runnable.js:395:21)
at Hook.Runnable.run (/Users/qpwoeirut/OtherProgramming/Dimensions/node_modules/mocha/lib/runnable.js:382:7)
at next (/Users/qpwoeirut/OtherProgramming/Dimensions/node_modules/mocha/lib/runner.js:389:10)
at Immediate.<anonymous> (/Users/qpwoeirut/OtherProgramming/Dimensions/node_modules/mocha/lib/runner.js:433:5)
at processImmediate (node:internal/timers:491:21)
26) Testing /api/dimensions/:dimensionID/users API
"before all" hook for "GET /api/dimensions/:dimensionID/users/:userID - should return user with id userID":
Uncaught
MongooseServerSelectionError:
at new MongooseServerSelectionError (/Users/qpwoeirut/OtherProgramming/Dimensions/node_modules/mongoose/lib/error/serverSelection.js:22:11)
at NativeConnection.Connection.openUri (/Users/qpwoeirut/OtherProgramming/Dimensions/node_modules/mongoose/lib/connection.js:823:32)
at Mongoose.connect (/Users/qpwoeirut/OtherProgramming/Dimensions/node_modules/mongoose/lib/index.js:333:15)
at MongoDB.<anonymous> (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:4:322)
at step (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:1:68488)
at Object.next (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:1:65352)
at /Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:1:64444
at new Promise (<anonymous>)
at __awaiter (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:1:63601)
at MongoDB.connect (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:4:129)
at MongoDB.<anonymous> (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:4:1012)
at step (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:1:68488)
at Object.next (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:1:65352)
at /Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:1:64444
at new Promise (<anonymous>)
at __awaiter (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:1:63601)
at MongoDB.initialize (/Users/qpwoeirut/OtherProgramming/Dimensions/src/SupportedPlugins/MongoDB/index.ts:4:715)
at Dimension.<anonymous> (/Users/qpwoeirut/OtherProgramming/Dimensions/src/Dimension/index.ts:117:50)
at step (/Users/qpwoeirut/OtherProgramming/Dimensions/src/Dimension/index.ts:1:70896)
at Object.next (/Users/qpwoeirut/OtherProgramming/Dimensions/src/Dimension/index.ts:1:67764)
at /Users/qpwoeirut/OtherProgramming/Dimensions/src/Dimension/index.ts:1:66866
at new Promise (<anonymous>)
at __awaiter (/Users/qpwoeirut/OtherProgramming/Dimensions/src/Dimension/index.ts:1:66037)
at Dimension.use (/Users/qpwoeirut/OtherProgramming/Dimensions/src/Dimension/index.ts:116:6)
at /Users/qpwoeirut/OtherProgramming/Dimensions/tests/api/05-dimensions.api.spec.ts:39:13
at step (/Users/qpwoeirut/OtherProgramming/Dimensions/tests/api/05-dimensions.api.spec.ts:33:23)
at Object.next (/Users/qpwoeirut/OtherProgramming/Dimensions/tests/api/05-dimensions.api.spec.ts:14:53)
at /Users/qpwoeirut/OtherProgramming/Dimensions/tests/api/05-dimensions.api.spec.ts:8:71
at new Promise (<anonymous>)
at __awaiter (/Users/qpwoeirut/OtherProgramming/Dimensions/tests/api/05-dimensions.api.spec.ts:4:12)
at Context.<anonymous> (/Users/qpwoeirut/OtherProgramming/Dimensions/tests/api/05-dimensions.api.spec.ts:26:10)
at callFn (/Users/qpwoeirut/OtherProgramming/Dimensions/node_modules/mocha/lib/runnable.js:395:21)
at Hook.Runnable.run (/Users/qpwoeirut/OtherProgramming/Dimensions/node_modules/mocha/lib/runnable.js:382:7)
at next (/Users/qpwoeirut/OtherProgramming/Dimensions/node_modules/mocha/lib/runner.js:389:10)
at Immediate.<anonymous> (/Users/qpwoeirut/OtherProgramming/Dimensions/node_modules/mocha/lib/runner.js:433:5)
at processImmediate (node:internal/timers:491:21)
[INFO] (dimension_t2zX67 Log) - Cleaning up
Cloning the project and running tests on my computer (which is running MacOS 12.7.5) causes a bunch of errors. Some of these are expected (such as errors connecting to MongoDB or Docker, which aren't installed) but others seem to be bugs. In particular:
There's also some warnings about circular dependencies. Not sure if those can be ignored or if they're symptoms of an actual issue.
Also, a more general question: is this project still being developed/maintained? Looks like the last commit was a few years ago, curious if you've moved on to other things. This project seems like it's really useful and I can't find any OSS that serves the same purpose.
The full test log is below, if it helps: