diff --git a/src/core.js b/src/core.js index c078ca65..5cb74569 100644 --- a/src/core.js +++ b/src/core.js @@ -118,7 +118,9 @@ const getFramework = async function (frameworkId, context) { const getFrameworkById = function (frameworkId) { const framework = FRAMEWORKS.find(({ id }) => id === frameworkId) if (framework === undefined) { - const frameworkIds = FRAMEWORKS.map((knownFramework) => getFrameworkId(knownFramework)).join(', ') + const frameworkIds = FRAMEWORKS.map((knownFramework) => getFrameworkId(knownFramework)) + .sort() + .join(', ') throw new Error(`Invalid framework "${frameworkId}". It should be one of: ${frameworkIds}`) } return framework diff --git a/test/main.js b/test/main.js index 002816bb..eb499382 100644 --- a/test/main.js +++ b/test/main.js @@ -37,3 +37,13 @@ test('Should allow testing a specific framework', async (t) => { test('Should throw when testing an invalid framework', async (t) => { await t.throwsAsync(hasFramework('simple', 'doesNotExist')) }) + +test('Should sort framework ids in invalid framework error message', async (t) => { + const error = await t.throwsAsync(hasFramework('simple', 'doesNotExist')) + + // we don't use a hardcoded string here, since it will change when a new framework is added + const [, frameworksFromMessage] = error.message.match(/It should be one of: (.+)/) + const frameworksArray = frameworksFromMessage.split(', ') + + t.deepEqual(frameworksArray, [...frameworksArray].sort()) +})