diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 684924d0..a056568e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -61,4 +61,6 @@ jobs: run: npm install - name: Run tests - run: npm run mochaTest -- -g ${{ matrix.mcVersion }}v + run: npm run mochaTest + env: + MC_VERSION: ${{ matrix.mcVersion }} diff --git a/test/benchmark.js b/test/benchmark.js index 1d24cd75..82451bd7 100644 --- a/test/benchmark.js +++ b/test/benchmark.js @@ -3,9 +3,10 @@ const ITERATIONS = 10000 const mc = require('../') +const testedVersions = require('./common/testedVersions') const states = mc.states -for (const supportedVersion of mc.supportedVersions) { +for (const supportedVersion of testedVersions) { const mcData = require('minecraft-data')(supportedVersion) const version = mcData.version const positionFlags = mcData.isNewerOrEqualTo('1.21.3') ? { flags: { onGround: true, hasHorizontalCollision: false } } : { onGround: true } diff --git a/test/clientTest.js b/test/clientTest.js index 63c2be29..afdaad81 100644 --- a/test/clientTest.js +++ b/test/clientTest.js @@ -9,13 +9,14 @@ const util = require('util') const applyClientHelpers = require('./common/clientHelpers') const download = util.promisify(require('minecraft-wrap').download) const { getPort } = require('./common/util') +const testedVersions = require('./common/testedVersions') const SURVIVE_TIME = 10000 const MC_SERVER_PATH = path.join(__dirname, 'server') const Wrap = require('minecraft-wrap').Wrap -for (const supportedVersion of mc.supportedVersions) { +for (const supportedVersion of testedVersions) { let PORT = null const mcData = require('minecraft-data')(supportedVersion) const version = mcData.version diff --git a/test/common/testedVersions.js b/test/common/testedVersions.js new file mode 100644 index 00000000..a9f0bf27 --- /dev/null +++ b/test/common/testedVersions.js @@ -0,0 +1,10 @@ +const mc = require('minecraft-protocol') + +// MC_VERSION names the one supported version to test; unset tests all of them. +const only = process.env.MC_VERSION + +if (only && !mc.supportedVersions.includes(only)) { + throw new Error(`MC_VERSION is ${only}, which is not one of ${mc.supportedVersions.join(', ')}`) +} + +module.exports = only ? [only] : mc.supportedVersions diff --git a/test/cyclePacketTest.js b/test/cyclePacketTest.js index 1a224d8d..06da9e99 100644 --- a/test/cyclePacketTest.js +++ b/test/cyclePacketTest.js @@ -1,6 +1,7 @@ /* eslint-env mocha */ // Tests packet serialization/deserialization from with raw binary from minecraft-packets -const { createSerializer, createDeserializer, states, supportedVersions } = require('minecraft-protocol') +const { createSerializer, createDeserializer, states } = require('minecraft-protocol') +const supportedVersions = require('./common/testedVersions') const mcPackets = require('minecraft-packets') const assert = require('assert') diff --git a/test/docTest.js b/test/docTest.js index 1b3d80fe..43710a03 100644 --- a/test/docTest.js +++ b/test/docTest.js @@ -1,13 +1,13 @@ /* eslint-env mocha */ -const mc = require('../') const fs = require('fs') const assert = require('assert') const path = require('path') +const testedVersions = require('./common/testedVersions') const readmeContent = fs.readFileSync(path.join(__dirname, '/../docs/README.md'), { encoding: 'utf8', flag: 'r' }) -for (const supportedVersion of mc.supportedVersions) { +for (const supportedVersion of testedVersions) { describe('doc ' + supportedVersion + 'v', function () { it('mentions the supported version in the readme', () => { assert.ok(readmeContent.includes(supportedVersion), `${supportedVersion} should be mentionned in the README.md but it is not`) diff --git a/test/packetTest.js b/test/packetTest.js index 9851fce2..75de8a83 100644 --- a/test/packetTest.js +++ b/test/packetTest.js @@ -9,6 +9,7 @@ const getFieldInfo = require('protodef').utils.getFieldInfo const getField = require('protodef').utils.getField const { getPort } = require('./common/util') +const testedVersions = require('./common/testedVersions') function evalCount (count, fields) { if (fields[count.field] in count.map) { return count.map[fields[count.field]] } @@ -467,7 +468,7 @@ function getValue (_type, packet) { } } -for (const supportedVersion of mc.supportedVersions) { +for (const supportedVersion of testedVersions) { let PORT const mcData = require('minecraft-data')(supportedVersion) diff --git a/test/serverTest.js b/test/serverTest.js index 95cb3382..81fc56cd 100644 --- a/test/serverTest.js +++ b/test/serverTest.js @@ -8,6 +8,7 @@ const nbt = require('prismarine-nbt') const applyClientHelpers = require('./common/clientHelpers') const { getPort } = require('./common/util') +const testedVersions = require('./common/testedVersions') const w = nbt.comp({ piglin_safe: nbt.byte(0), @@ -25,7 +26,7 @@ const w = nbt.comp({ has_ceiling: nbt.byte(0) }) -for (const supportedVersion of mc.supportedVersions) { +for (const supportedVersion of testedVersions) { let PORT const mcData = require('minecraft-data')(supportedVersion) const version = mcData.version