Skip to content

fix(query): clone PopulateOptions when setting _localModel to avoid state leaking between subpopulate instances #9682

fix(query): clone PopulateOptions when setting _localModel to avoid state leaking between subpopulate instances

fix(query): clone PopulateOptions when setting _localModel to avoid state leaking between subpopulate instances #9682

Workflow file for this run

name: Test
on:
pull_request:
paths:
- '.github/workflows/test.yml'
- 'package.json'
- 'index.js'
- 'lib/**'
- 'test/**.js'
push:
paths:
- '.github/workflows/test.yml'
- 'package.json'
- 'index.js'
- 'lib/**'
- 'test/**.js'
permissions:
contents: read
jobs:
lint:
runs-on: ubuntu-latest
name: Lint JS-Files
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Setup node
uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.1.0
with:
node-version: 22
- run: npm install
- name: Lint JS-Files
run: npm run lint-js
test:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
node: [16, 18, 20, 22]
os: [ubuntu-20.04, ubuntu-22.04]
mongodb: [4.4.29, 5.0.26, 6.0.15, 7.0.12, 8.0.0]
include:
- os: ubuntu-20.04 # customize on which matrix the coverage will be collected on
mongodb: 5.0.26
node: 16
coverage: true
exclude:
- os: ubuntu-22.04 # exclude because there are no 4.x mongodb builds for 2204
mongodb: 4.4.29
- os: ubuntu-22.04 # exclude because there are no 5.x mongodb builds for 2204
mongodb: 5.0.26
name: Node ${{ matrix.node }} MongoDB ${{ matrix.mongodb }} OS ${{ matrix.os }}
env:
MONGOMS_VERSION: ${{ matrix.mongodb }}
MONGOMS_PREFER_GLOBAL_PATH: 1
FORCE_COLOR: true
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Setup node
uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.1.0
with:
node-version: ${{ matrix.node }}
- name: Load MongoDB binary cache
id: cache-mongodb-binaries
uses: actions/cache@v4
with:
path: ~/.cache/mongodb-binaries
key: ${{ matrix.os }}-${{ matrix.mongodb }}
- run: npm install
- name: NPM Test without Coverage
run: npm test
if: matrix.coverage != true
- name: NPM Test with Coverage
run: npm run test-coverage
if: matrix.coverage == true
- name: Archive code coverage results
uses: actions/upload-artifact@v4
if: matrix.coverage == true
with:
name: coverage
path: coverage
test-deno:
runs-on: ubuntu-20.04
name: Deno tests
env:
MONGOMS_VERSION: 6.0.15
MONGOMS_PREFER_GLOBAL_PATH: 1
FORCE_COLOR: true
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Setup node
uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.1.0
with:
node-version: 22
- name: Load MongoDB binary cache
id: cache-mongodb-binaries
uses: actions/cache@v4
with:
path: ~/.cache/mongodb-binaries
key: deno-${{ env.MONGOMS_VERSION }}
- name: Setup Deno
uses: denoland/setup-deno@v2
with:
deno-version: v1.37.x
- run: deno --version
- run: npm install
- name: Run Deno tests
run: npm run test-deno
test-replica-sets:
needs:
- test
runs-on: ubuntu-latest
name: Replica Set tests
env:
FORCE_COLOR: true
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Setup node
uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.1.0
with:
node-version: 22
- run: npm install
- name: Test
run: npm run test-rs
dependency-review:
name: Dependency Review
if: github.event_name == 'pull_request'
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- name: Check out repo
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Dependency review
uses: actions/dependency-review-action@v4