feathers icon indicating copy to clipboard operation
feathers copied to clipboard

Cannot read properties of undefined (reading 'get') from app when testing

Open lukrehub opened this issue 2 years ago • 2 comments

Hey there, I run into issues when trying to run the mocha tests. Strange thing here: They always worked before and I am unsure what changed besides a version upgrade. If anyone has a clue whats happening here, any hints are greatly appreciated!

Steps to reproduce

running the tests from a monorepo fails with the following message:

TypeError: Cannot read properties of undefined (reading 'get')
    at Object.<anonymous> (C:-----\apps\api\src\index.ts:4:18)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)
    at Module.m._compile (C:------\node_modules\ts-node\src\index.ts:1618:23)
    at Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at Object.require.extensions.<computed> [as .ts] (C:------\node_modules\ts-node\src\index.ts:1621:12)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Module.require (node:internal/modules/cjs/loader:1005:19)
    at require (node:internal/modules/cjs/helpers:102:18)
    at Object.<anonymous> (C:------\apps\api\src\services\users\users.schema.ts:10:1)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)
    at Module.m._compile (C:------\node_modules\ts-node\src\index.ts:1618:23)
    at Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at Object.require.extensions.<computed> [as .ts] (C:------\node_modules\ts-node\src\index.ts:1621:12)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Module.require (node:internal/modules/cjs/loader:1005:19)
    at require (node:internal/modules/cjs/helpers:102:18)
    at Object.<anonymous> (C:------\apps\api\src\services\users\users.ts:6:1)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)
    at Module.m._compile (C:------\node_modules\ts-node\src\index.ts:1618:23)
    at Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at Object.require.extensions.<computed> [as .ts] (C:------\node_modules\ts-node\src\index.ts:1621:12)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Module.require (node:internal/modules/cjs/loader:1005:19)
    at require (node:internal/modules/cjs/helpers:102:18)
    at Object.<anonymous> (C:------\apps\api\src\services\index.ts:4:1)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)
    at Module.m._compile (C:------\node_modules\ts-node\src\index.ts:1618:23)
    at Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at Object.require.extensions.<computed> [as .ts] (C:------\node_modules\ts-node\src\index.ts:1621:12)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Module.require (node:internal/modules/cjs/loader:1005:19)
    at require (node:internal/modules/cjs/helpers:102:18)
    at Object.<anonymous> (C:------\apps\api\src\app.ts:17:1)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)
    at Module.m._compile (C:------\node_modules\ts-node\src\index.ts:1618:23)
    at Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at Object.require.extensions.<computed> [as .ts] (C:------\node_modules\ts-node\src\index.ts:1621:12)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Module.require (node:internal/modules/cjs/loader:1005:19)
    at require (node:internal/modules/cjs/helpers:102:18)
    at Object.<anonymous> (C:------\apps\api\test\app.test.ts:5:1)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)
    at Module.m._compile (C:------\node_modules\ts-node\src\index.ts:1618:23)
    at Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at Object.require.extensions.<computed> [as .ts] (C:------\node_modules\ts-node\src\index.ts:1621:12)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Module.require (node:internal/modules/cjs/loader:1005:19)
    at require (node:internal/modules/cjs/helpers:102:18)
    at Object.exports.requireOrImport (C:------\node_modules\mocha\lib\nodejs\esm-utils.js:53:16)
    at async Object.exports.loadFilesAsync (C:------\node_modules\mocha\lib\nodejs\esm-utils.js:100:20)
    at async singleRun (C:------\node_modules\mocha\lib\cli\run-helpers.js:125:3)
    at async Object.exports.handler (C:------\node_modules\mocha\lib\cli\run.js:370:5)

I use nx in the monorepo, although just using yarn inside the feathers app folder produces the same error.

Expected behavior

I'd expect the tests to run as they always worked before. I am unsure what changed besides a feathers version upgrade (from 5.0.3). Downgrading to 5.0.3 does not solve the issue though.

System configuration

I am using feathers 5.0.8

Module versions (especially the part that's not working):

NodeJS version: 16

Operating System: Windows

lukrehub avatar Jul 24 '23 10:07 lukrehub

I just wanted to add, that using app.get("...") in a custom file somewhere, and importing app like import { app } from "../../app also results in "cannot read properties of undefined (reading 'get')".

Am I trying to retrieve config values the wrong way, outside of services?

lukrehub avatar Aug 07 '23 10:08 lukrehub

This sounds like some kind of ES module import error but it is hard to tell without seeing your app file.

daffl avatar Sep 27 '23 22:09 daffl