StoneT2000 / Dimensions

A Generalized Artificial Intelligence Competition Framework. And yes, its in Typescript for good reason
MIT License
75 stars 8 forks source link

Test failures on MacOS 12.7.5 #156

Open qpwoeirut opened 1 week ago

qpwoeirut commented 1 week ago

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:

> 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
StoneT2000 commented 1 week ago

Thanks for checking this project out. Unfortunately I do not maintain this project anymore so cannot really help here.

StoneT2000 commented 1 week ago

oh but some of the errors seem docker related, particularly maybe docker is not running