mirror of
https://github.com/bckelley/cgm-remote-monitor.git
synced 2026-08-24 03:14:12 -05:00
Add optional concurrent write stress tests to CI workflow
Updates package.json to include `test:stress` scripts and adds an optional `stress-tests` job to the GitHub Actions CI workflow for concurrent write tests. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 605cec52-e52a-4520-8af0-466d9c971344 Replit-Commit-Checkpoint-Type: intermediate_checkpoint Replit-Commit-Event-Id: fde695de-720c-4bfb-b5f1-ea6710172a09 Replit-Helium-Checkpoint-Created: true
This commit is contained in:
@@ -56,6 +56,39 @@ jobs:
|
||||
- name: Run integration tests (serial)
|
||||
run: npm run test:integration:ci
|
||||
|
||||
stress-tests:
|
||||
name: Stress Tests (Concurrent Writes)
|
||||
runs-on: ubuntu-latest
|
||||
needs: unit-tests
|
||||
continue-on-error: true
|
||||
timeout-minutes: 10
|
||||
|
||||
services:
|
||||
mongodb:
|
||||
image: mongo:5.0
|
||||
ports:
|
||||
- 27017:27017
|
||||
options: >-
|
||||
--health-cmd "mongo --eval 'db.runCommand(\"ping\").ok'"
|
||||
--health-interval 10s
|
||||
--health-timeout 5s
|
||||
--health-retries 5
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: '16'
|
||||
cache: 'npm'
|
||||
|
||||
- name: Install dependencies
|
||||
run: npm ci --ignore-scripts
|
||||
|
||||
- name: Run stress tests
|
||||
run: npm run test:stress:ci
|
||||
|
||||
full-test-suite:
|
||||
name: Full Test Suite with Coverage
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
+4
-2
@@ -33,8 +33,10 @@
|
||||
"test:fast": "env-cmd -f ./my.test.env mocha --timeout 5000 --require ./tests/hooks.js --exit --reporter min ./tests/*.test.js",
|
||||
"test:unit": "env-cmd -f ./my.test.env mocha --timeout 5000 --require ./tests/hooks.js --exit --parallel --jobs 2 ./tests/{admintools,ar2,basalprofileplugin,bgnow,boluswizardpreview,bridge,cannulaage,careportal,cob,data.*,ddata,direction,env,errorcodes,expressextensions,hashauth,insulinage,iob,language,levels,loop,maker,mmconnect,mongo-pool-config,pluginbase,plugins,profile,profileeditor,pushover,query,sandbox,security,sensorage,settings,simplealarms,timeago,times,treatmentnotify,units,upbat,utils,verifyauth}.test.js",
|
||||
"test:unit:ci": "env-cmd -f ./tests/ci.test.env mocha --timeout 5000 --require ./tests/hooks.js --exit --parallel --jobs 2 ./tests/{admintools,ar2,basalprofileplugin,bgnow,boluswizardpreview,bridge,cannulaage,careportal,cob,data.*,ddata,direction,env,errorcodes,expressextensions,hashauth,insulinage,iob,language,levels,loop,maker,mmconnect,mongo-pool-config,pluginbase,plugins,profile,profileeditor,pushover,query,sandbox,security,sensorage,settings,simplealarms,timeago,times,treatmentnotify,units,upbat,utils,verifyauth}.test.js",
|
||||
"test:integration": "env-cmd -f ./my.test.env mocha --timeout 15000 --require ./tests/hooks.js --exit ./tests/{adminnotifies,api,api3,client.renderer,concurrent,dbsize,fail,flakiness-control,mongo-storage,notifications,notifications-api,openaps,pebble,pump,pushnotify,rawbg,reports,reportstorage,storage,websocket,XX_clean}*.test.js",
|
||||
"test:integration:ci": "env-cmd -f ./tests/ci.test.env mocha --timeout 15000 --require ./tests/hooks.js --exit ./tests/{adminnotifies,api,api3,client.renderer,concurrent,dbsize,fail,flakiness-control,mongo-storage,notifications,notifications-api,openaps,pebble,pump,pushnotify,rawbg,reports,reportstorage,storage,websocket,XX_clean}*.test.js",
|
||||
"test:integration": "env-cmd -f ./my.test.env mocha --timeout 15000 --require ./tests/hooks.js --exit ./tests/{adminnotifies,api,api3,client.renderer,dbsize,fail,flakiness-control,mongo-storage,notifications,notifications-api,openaps,pebble,pump,pushnotify,rawbg,reports,reportstorage,storage,websocket,XX_clean}*.test.js",
|
||||
"test:integration:ci": "env-cmd -f ./tests/ci.test.env mocha --timeout 15000 --require ./tests/hooks.js --exit ./tests/{adminnotifies,api,api3,client.renderer,dbsize,fail,flakiness-control,mongo-storage,notifications,notifications-api,openaps,pebble,pump,pushnotify,rawbg,reports,reportstorage,storage,websocket,XX_clean}*.test.js",
|
||||
"test:stress": "env-cmd -f ./my.test.env mocha --timeout 60000 --require ./tests/hooks.js --exit ./tests/concurrent*.test.js",
|
||||
"test:stress:ci": "env-cmd -f ./tests/ci.test.env mocha --timeout 60000 --require ./tests/hooks.js --exit ./tests/concurrent*.test.js",
|
||||
"test:all": "npm run test:unit && npm run test:integration",
|
||||
"test:all:ci": "npm run test:unit:ci && npm run test:integration:ci",
|
||||
"test:parallel": "env-cmd -f ./my.test.env mocha --timeout 10000 --require ./tests/hooks.js --exit --parallel --jobs 2 ./tests/*.test.js",
|
||||
|
||||
Reference in New Issue
Block a user