From a034a262151b6ef17e80d0d9ab5457d649737cc5 Mon Sep 17 00:00:00 2001 From: Donald Pakkies Date: Tue, 21 Oct 2025 00:12:38 +0200 Subject: [PATCH 1/6] fix: use readFileSync for bun --- src/Support/Helpers/config.imba | 5 ++++- src/Support/Language/Language.imba | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/Support/Helpers/config.imba b/src/Support/Helpers/config.imba index 46870f50..57c8ee05 100644 --- a/src/Support/Helpers/config.imba +++ b/src/Support/Helpers/config.imba @@ -1,5 +1,6 @@ import ConfigNotCachedError from './Error/ConfigNotCachedError' import dot from './dotNotation' +import runtime from './runtime' import path from 'path' def fallback notation\string, default\any = null @@ -15,7 +16,9 @@ export default def config notation\string, default\any = null if !notation or typeof notation != 'string' return default try - const config = require(path.join(process.cwd!, 'bootstrap', 'cache', 'config.json')) + const cachedConfig = path.join(process.cwd!, 'bootstrap', 'cache', 'config.json') + + const config = runtime() == 'bun' ? JSON.parse(fs.readFileSync(cachedConfig)) : require(cachedConfig) return dot(config, notation) ?? default catch e return fallback(notation, default) diff --git a/src/Support/Language/Language.imba b/src/Support/Language/Language.imba index c8ca8ae8..75af13c6 100644 --- a/src/Support/Language/Language.imba +++ b/src/Support/Language/Language.imba @@ -1,4 +1,5 @@ import dot from '../Helpers/dotNotation' +import runtime from '../Helpers/runtime' import fs from 'fs' import path from 'path' @@ -46,8 +47,10 @@ export default class Language for file in fs.readdirSync(path.join(location, pack)) if path.extname(file) == '.json' + const translation = path.join(location, pack, file) + const definition = { - [path.parse(file).name]: require path.join(location, pack, file) + [path.parse(file).name]: runtime! == 'bun' ? JSON.parse(fs.readFileSync(translation).toString()) : require(translation) } if !definition From af55b78f4af71dd582d339b5abeb43d8fcee8d7f Mon Sep 17 00:00:00 2001 From: Donald Pakkies Date: Tue, 21 Oct 2025 00:12:54 +0200 Subject: [PATCH 2/6] feat: add mocks --- .../imba/test/__mocks__/@paralleldrive/cuid2.js | 15 +++++++++++++++ formidable/auth/imba/test/app.e2e.test.imba | 2 ++ .../ts/test/__mocks__/@paralleldrive/cuid2.js | 15 +++++++++++++++ formidable/auth/ts/test/app.e2e.test.ts | 2 ++ .../test/imba/__mocks__/@paralleldrive/cuid2.js | 15 +++++++++++++++ formidable/web/test/imba/app.e2e.test.imba | 2 ++ .../web/test/ts/__mocks__/@paralleldrive/cuid2.js | 15 +++++++++++++++ formidable/web/test/ts/app.e2e.test.ts | 4 +++- 8 files changed, 69 insertions(+), 1 deletion(-) create mode 100644 formidable/auth/imba/test/__mocks__/@paralleldrive/cuid2.js create mode 100644 formidable/auth/ts/test/__mocks__/@paralleldrive/cuid2.js create mode 100644 formidable/web/test/imba/__mocks__/@paralleldrive/cuid2.js create mode 100644 formidable/web/test/ts/__mocks__/@paralleldrive/cuid2.js diff --git a/formidable/auth/imba/test/__mocks__/@paralleldrive/cuid2.js b/formidable/auth/imba/test/__mocks__/@paralleldrive/cuid2.js new file mode 100644 index 00000000..3f0d9d6b --- /dev/null +++ b/formidable/auth/imba/test/__mocks__/@paralleldrive/cuid2.js @@ -0,0 +1,15 @@ +# Mock for @paralleldrive/cuid2 +# module.exports = { +# createId: jest.fn(() => 'mock-id'), +# init: jest.fn(), +# getConstants: jest.fn(() => ({})), +# isCuid: jest.fn(() => true) +# }; + + +module.exports = { + createId: jest.fn(do 'mock-id'), + init: jest.fn!, + getConstants: jest.fn(do ({})), + isCuid: jest.fn(do true) +} diff --git a/formidable/auth/imba/test/app.e2e.test.imba b/formidable/auth/imba/test/app.e2e.test.imba index 1884fccd..19440dfd 100644 --- a/formidable/auth/imba/test/app.e2e.test.imba +++ b/formidable/auth/imba/test/app.e2e.test.imba @@ -1,3 +1,5 @@ +jest.mock '@paralleldrive/cuid2' + const formidable = require('../.formidable/build').default const supertest = require('supertest') diff --git a/formidable/auth/ts/test/__mocks__/@paralleldrive/cuid2.js b/formidable/auth/ts/test/__mocks__/@paralleldrive/cuid2.js new file mode 100644 index 00000000..3f0d9d6b --- /dev/null +++ b/formidable/auth/ts/test/__mocks__/@paralleldrive/cuid2.js @@ -0,0 +1,15 @@ +# Mock for @paralleldrive/cuid2 +# module.exports = { +# createId: jest.fn(() => 'mock-id'), +# init: jest.fn(), +# getConstants: jest.fn(() => ({})), +# isCuid: jest.fn(() => true) +# }; + + +module.exports = { + createId: jest.fn(do 'mock-id'), + init: jest.fn!, + getConstants: jest.fn(do ({})), + isCuid: jest.fn(do true) +} diff --git a/formidable/auth/ts/test/app.e2e.test.ts b/formidable/auth/ts/test/app.e2e.test.ts index c36d3320..22cee004 100644 --- a/formidable/auth/ts/test/app.e2e.test.ts +++ b/formidable/auth/ts/test/app.e2e.test.ts @@ -1,3 +1,5 @@ +jest.mock('@paralleldrive/cuid2') + const formidable = require('../.formidable/build').default const supertest = require('supertest') diff --git a/formidable/web/test/imba/__mocks__/@paralleldrive/cuid2.js b/formidable/web/test/imba/__mocks__/@paralleldrive/cuid2.js new file mode 100644 index 00000000..3f0d9d6b --- /dev/null +++ b/formidable/web/test/imba/__mocks__/@paralleldrive/cuid2.js @@ -0,0 +1,15 @@ +# Mock for @paralleldrive/cuid2 +# module.exports = { +# createId: jest.fn(() => 'mock-id'), +# init: jest.fn(), +# getConstants: jest.fn(() => ({})), +# isCuid: jest.fn(() => true) +# }; + + +module.exports = { + createId: jest.fn(do 'mock-id'), + init: jest.fn!, + getConstants: jest.fn(do ({})), + isCuid: jest.fn(do true) +} diff --git a/formidable/web/test/imba/app.e2e.test.imba b/formidable/web/test/imba/app.e2e.test.imba index 6441ba39..6b2506dc 100644 --- a/formidable/web/test/imba/app.e2e.test.imba +++ b/formidable/web/test/imba/app.e2e.test.imba @@ -1,3 +1,5 @@ +jest.mock '@paralleldrive/cuid2' + const formidable = require('../.formidable/build').default const supertest = require('supertest') diff --git a/formidable/web/test/ts/__mocks__/@paralleldrive/cuid2.js b/formidable/web/test/ts/__mocks__/@paralleldrive/cuid2.js new file mode 100644 index 00000000..3f0d9d6b --- /dev/null +++ b/formidable/web/test/ts/__mocks__/@paralleldrive/cuid2.js @@ -0,0 +1,15 @@ +# Mock for @paralleldrive/cuid2 +# module.exports = { +# createId: jest.fn(() => 'mock-id'), +# init: jest.fn(), +# getConstants: jest.fn(() => ({})), +# isCuid: jest.fn(() => true) +# }; + + +module.exports = { + createId: jest.fn(do 'mock-id'), + init: jest.fn!, + getConstants: jest.fn(do ({})), + isCuid: jest.fn(do true) +} diff --git a/formidable/web/test/ts/app.e2e.test.ts b/formidable/web/test/ts/app.e2e.test.ts index 2d83fc1a..9018d3bf 100644 --- a/formidable/web/test/ts/app.e2e.test.ts +++ b/formidable/web/test/ts/app.e2e.test.ts @@ -1,3 +1,5 @@ +jest.mock('@paralleldrive/cuid2') + const formidable = require('../.formidable/build').default const supertest = require('supertest') @@ -17,7 +19,7 @@ describe('Application (e2e)', () => { }) it('/ (GET: Welcome)', async () => { - supertest(app.server) + await supertest(app.server) .get('/') .expect(200) .expect((res) => { From f545ee9a9d94e9d9c73b4d315cbb0e7c1c082349 Mon Sep 17 00:00:00 2001 From: Donald Pakkies Date: Tue, 21 Oct 2025 00:38:20 +0200 Subject: [PATCH 3/6] chore: clean up --- .../auth/imba/test/__mocks__/@paralleldrive/cuid2.js | 9 +-------- .../auth/ts/test/__mocks__/@paralleldrive/cuid2.js | 9 +-------- .../web/test/imba/__mocks__/@paralleldrive/cuid2.js | 9 +-------- formidable/web/test/ts/__mocks__/@paralleldrive/cuid2.js | 9 +-------- 4 files changed, 4 insertions(+), 32 deletions(-) diff --git a/formidable/auth/imba/test/__mocks__/@paralleldrive/cuid2.js b/formidable/auth/imba/test/__mocks__/@paralleldrive/cuid2.js index 3f0d9d6b..63a9a993 100644 --- a/formidable/auth/imba/test/__mocks__/@paralleldrive/cuid2.js +++ b/formidable/auth/imba/test/__mocks__/@paralleldrive/cuid2.js @@ -1,11 +1,4 @@ -# Mock for @paralleldrive/cuid2 -# module.exports = { -# createId: jest.fn(() => 'mock-id'), -# init: jest.fn(), -# getConstants: jest.fn(() => ({})), -# isCuid: jest.fn(() => true) -# }; - +// Mock for @paralleldrive/cuid2 module.exports = { createId: jest.fn(do 'mock-id'), diff --git a/formidable/auth/ts/test/__mocks__/@paralleldrive/cuid2.js b/formidable/auth/ts/test/__mocks__/@paralleldrive/cuid2.js index 3f0d9d6b..63a9a993 100644 --- a/formidable/auth/ts/test/__mocks__/@paralleldrive/cuid2.js +++ b/formidable/auth/ts/test/__mocks__/@paralleldrive/cuid2.js @@ -1,11 +1,4 @@ -# Mock for @paralleldrive/cuid2 -# module.exports = { -# createId: jest.fn(() => 'mock-id'), -# init: jest.fn(), -# getConstants: jest.fn(() => ({})), -# isCuid: jest.fn(() => true) -# }; - +// Mock for @paralleldrive/cuid2 module.exports = { createId: jest.fn(do 'mock-id'), diff --git a/formidable/web/test/imba/__mocks__/@paralleldrive/cuid2.js b/formidable/web/test/imba/__mocks__/@paralleldrive/cuid2.js index 3f0d9d6b..63a9a993 100644 --- a/formidable/web/test/imba/__mocks__/@paralleldrive/cuid2.js +++ b/formidable/web/test/imba/__mocks__/@paralleldrive/cuid2.js @@ -1,11 +1,4 @@ -# Mock for @paralleldrive/cuid2 -# module.exports = { -# createId: jest.fn(() => 'mock-id'), -# init: jest.fn(), -# getConstants: jest.fn(() => ({})), -# isCuid: jest.fn(() => true) -# }; - +// Mock for @paralleldrive/cuid2 module.exports = { createId: jest.fn(do 'mock-id'), diff --git a/formidable/web/test/ts/__mocks__/@paralleldrive/cuid2.js b/formidable/web/test/ts/__mocks__/@paralleldrive/cuid2.js index 3f0d9d6b..63a9a993 100644 --- a/formidable/web/test/ts/__mocks__/@paralleldrive/cuid2.js +++ b/formidable/web/test/ts/__mocks__/@paralleldrive/cuid2.js @@ -1,11 +1,4 @@ -# Mock for @paralleldrive/cuid2 -# module.exports = { -# createId: jest.fn(() => 'mock-id'), -# init: jest.fn(), -# getConstants: jest.fn(() => ({})), -# isCuid: jest.fn(() => true) -# }; - +// Mock for @paralleldrive/cuid2 module.exports = { createId: jest.fn(do 'mock-id'), From f080b53d5edeb351abe4683fa66a08ff64db4d34 Mon Sep 17 00:00:00 2001 From: Donald Pakkies Date: Tue, 21 Oct 2025 00:42:16 +0200 Subject: [PATCH 4/6] fix: tests mock cuid2 --- scripts/e2e/test/__mocks__/@paralleldrive/cuid2.js | 8 ++++++++ scripts/e2e/test/app.e2e.test.imba | 2 ++ scripts/e2e/test/auth.test.imba | 2 ++ scripts/e2e/test/database.test.imba | 2 ++ scripts/e2e/test/language.test.imba | 2 ++ scripts/e2e/test/responses.test.imba | 2 ++ scripts/e2e/test/routes.test.imba | 2 ++ scripts/e2e/test/validation.test.imba | 2 ++ 8 files changed, 22 insertions(+) create mode 100644 scripts/e2e/test/__mocks__/@paralleldrive/cuid2.js diff --git a/scripts/e2e/test/__mocks__/@paralleldrive/cuid2.js b/scripts/e2e/test/__mocks__/@paralleldrive/cuid2.js new file mode 100644 index 00000000..63a9a993 --- /dev/null +++ b/scripts/e2e/test/__mocks__/@paralleldrive/cuid2.js @@ -0,0 +1,8 @@ +// Mock for @paralleldrive/cuid2 + +module.exports = { + createId: jest.fn(do 'mock-id'), + init: jest.fn!, + getConstants: jest.fn(do ({})), + isCuid: jest.fn(do true) +} diff --git a/scripts/e2e/test/app.e2e.test.imba b/scripts/e2e/test/app.e2e.test.imba index f72d058a..76a31748 100644 --- a/scripts/e2e/test/app.e2e.test.imba +++ b/scripts/e2e/test/app.e2e.test.imba @@ -1,3 +1,5 @@ +jest.mock '@paralleldrive/cuid2' + const formidable = require('../.formidable/build').default const supertest = require('supertest') diff --git a/scripts/e2e/test/auth.test.imba b/scripts/e2e/test/auth.test.imba index 7c1e5af4..f2349091 100644 --- a/scripts/e2e/test/auth.test.imba +++ b/scripts/e2e/test/auth.test.imba @@ -1,3 +1,5 @@ +jest.mock '@paralleldrive/cuid2' + const formidable = require('../.formidable/build').default const supertest = require('supertest') diff --git a/scripts/e2e/test/database.test.imba b/scripts/e2e/test/database.test.imba index 12de8b2f..00c005ca 100644 --- a/scripts/e2e/test/database.test.imba +++ b/scripts/e2e/test/database.test.imba @@ -1,3 +1,5 @@ +jest.mock '@paralleldrive/cuid2' + const formidable = require('../.formidable/build').default const supertest = require('supertest') diff --git a/scripts/e2e/test/language.test.imba b/scripts/e2e/test/language.test.imba index ca86c7ee..79c4bdb0 100644 --- a/scripts/e2e/test/language.test.imba +++ b/scripts/e2e/test/language.test.imba @@ -1,3 +1,5 @@ +jest.mock '@paralleldrive/cuid2' + const formidable = require('../.formidable/build').default const supertest = require('supertest') diff --git a/scripts/e2e/test/responses.test.imba b/scripts/e2e/test/responses.test.imba index c541e539..825e1c3e 100644 --- a/scripts/e2e/test/responses.test.imba +++ b/scripts/e2e/test/responses.test.imba @@ -1,3 +1,5 @@ +jest.mock '@paralleldrive/cuid2' + const formidable = require('../.formidable/build').default const supertest = require('supertest') diff --git a/scripts/e2e/test/routes.test.imba b/scripts/e2e/test/routes.test.imba index f78785de..c637c0ab 100644 --- a/scripts/e2e/test/routes.test.imba +++ b/scripts/e2e/test/routes.test.imba @@ -1,3 +1,5 @@ +jest.mock '@paralleldrive/cuid2' + const formidable = require('../.formidable/build').default const supertest = require('supertest') diff --git a/scripts/e2e/test/validation.test.imba b/scripts/e2e/test/validation.test.imba index b197c310..e2eed11b 100644 --- a/scripts/e2e/test/validation.test.imba +++ b/scripts/e2e/test/validation.test.imba @@ -1,3 +1,5 @@ +jest.mock '@paralleldrive/cuid2' + const formidable = require('../.formidable/build').default const supertest = require('supertest') From 40842fd7cfd80bf47cdeb4ed38dfa6813ca1031a Mon Sep 17 00:00:00 2001 From: Donald Pakkies Date: Tue, 21 Oct 2025 00:46:11 +0200 Subject: [PATCH 5/6] fix: syntax use js syntax instead of imba syntax --- .../auth/imba/test/__mocks__/@paralleldrive/cuid2.js | 12 ++++++------ .../auth/ts/test/__mocks__/@paralleldrive/cuid2.js | 12 ++++++------ .../web/test/imba/__mocks__/@paralleldrive/cuid2.js | 12 ++++++------ .../web/test/ts/__mocks__/@paralleldrive/cuid2.js | 12 ++++++------ scripts/e2e/test/__mocks__/@paralleldrive/cuid2.js | 12 ++++++------ 5 files changed, 30 insertions(+), 30 deletions(-) diff --git a/formidable/auth/imba/test/__mocks__/@paralleldrive/cuid2.js b/formidable/auth/imba/test/__mocks__/@paralleldrive/cuid2.js index 63a9a993..3e7b5e6a 100644 --- a/formidable/auth/imba/test/__mocks__/@paralleldrive/cuid2.js +++ b/formidable/auth/imba/test/__mocks__/@paralleldrive/cuid2.js @@ -1,8 +1,8 @@ -// Mock for @paralleldrive/cuid2 +//Mock for @paralleldrive/cuid2 module.exports = { - createId: jest.fn(do 'mock-id'), - init: jest.fn!, - getConstants: jest.fn(do ({})), - isCuid: jest.fn(do true) -} + createId: jest.fn(() => 'mock-id'), + init: jest.fn(), + getConstants: jest.fn(() => ({})), + isCuid: jest.fn(() => true) +}; diff --git a/formidable/auth/ts/test/__mocks__/@paralleldrive/cuid2.js b/formidable/auth/ts/test/__mocks__/@paralleldrive/cuid2.js index 63a9a993..3e7b5e6a 100644 --- a/formidable/auth/ts/test/__mocks__/@paralleldrive/cuid2.js +++ b/formidable/auth/ts/test/__mocks__/@paralleldrive/cuid2.js @@ -1,8 +1,8 @@ -// Mock for @paralleldrive/cuid2 +//Mock for @paralleldrive/cuid2 module.exports = { - createId: jest.fn(do 'mock-id'), - init: jest.fn!, - getConstants: jest.fn(do ({})), - isCuid: jest.fn(do true) -} + createId: jest.fn(() => 'mock-id'), + init: jest.fn(), + getConstants: jest.fn(() => ({})), + isCuid: jest.fn(() => true) +}; diff --git a/formidable/web/test/imba/__mocks__/@paralleldrive/cuid2.js b/formidable/web/test/imba/__mocks__/@paralleldrive/cuid2.js index 63a9a993..3e7b5e6a 100644 --- a/formidable/web/test/imba/__mocks__/@paralleldrive/cuid2.js +++ b/formidable/web/test/imba/__mocks__/@paralleldrive/cuid2.js @@ -1,8 +1,8 @@ -// Mock for @paralleldrive/cuid2 +//Mock for @paralleldrive/cuid2 module.exports = { - createId: jest.fn(do 'mock-id'), - init: jest.fn!, - getConstants: jest.fn(do ({})), - isCuid: jest.fn(do true) -} + createId: jest.fn(() => 'mock-id'), + init: jest.fn(), + getConstants: jest.fn(() => ({})), + isCuid: jest.fn(() => true) +}; diff --git a/formidable/web/test/ts/__mocks__/@paralleldrive/cuid2.js b/formidable/web/test/ts/__mocks__/@paralleldrive/cuid2.js index 63a9a993..3e7b5e6a 100644 --- a/formidable/web/test/ts/__mocks__/@paralleldrive/cuid2.js +++ b/formidable/web/test/ts/__mocks__/@paralleldrive/cuid2.js @@ -1,8 +1,8 @@ -// Mock for @paralleldrive/cuid2 +//Mock for @paralleldrive/cuid2 module.exports = { - createId: jest.fn(do 'mock-id'), - init: jest.fn!, - getConstants: jest.fn(do ({})), - isCuid: jest.fn(do true) -} + createId: jest.fn(() => 'mock-id'), + init: jest.fn(), + getConstants: jest.fn(() => ({})), + isCuid: jest.fn(() => true) +}; diff --git a/scripts/e2e/test/__mocks__/@paralleldrive/cuid2.js b/scripts/e2e/test/__mocks__/@paralleldrive/cuid2.js index 63a9a993..3e7b5e6a 100644 --- a/scripts/e2e/test/__mocks__/@paralleldrive/cuid2.js +++ b/scripts/e2e/test/__mocks__/@paralleldrive/cuid2.js @@ -1,8 +1,8 @@ -// Mock for @paralleldrive/cuid2 +//Mock for @paralleldrive/cuid2 module.exports = { - createId: jest.fn(do 'mock-id'), - init: jest.fn!, - getConstants: jest.fn(do ({})), - isCuid: jest.fn(do true) -} + createId: jest.fn(() => 'mock-id'), + init: jest.fn(), + getConstants: jest.fn(() => ({})), + isCuid: jest.fn(() => true) +}; From 6665156a5b0987cd8eaf7b7ea8476d43cb2667c3 Mon Sep 17 00:00:00 2001 From: Donald Pakkies Date: Tue, 21 Oct 2025 00:52:08 +0200 Subject: [PATCH 6/6] chore: bump version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index b22ac7eb..4a1db729 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@formidablejs/framework", - "version": "0.28.4", + "version": "0.28.5", "description": "Formidable Framework Core", "author": "Donald Pakkies", "license": "MIT",