getappmap / getappmap/appmap-node

test failures in nest

Open
#156 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug
Dominant language
TypeScript
Stars
13
Forks
6
Avg merge
18h 23m
Merged PRs (30d)
8

Description

Running npm test in nestjs/nest, some tests fail:

  1) ConfigurableModuleBuilder
       setExtras
         should apply module definition transformer function and return typed builder:
     Error: "ASYNC_OPTIONS_TYPE" is not supposed to be used as a value.
      at Object.get (packages/common/module-utils/configurable-module.builder.ts:417:17)
      at isSimpleObject (/Users/ajp/.npm/_npx/c76987c9a3c183fa/node_modules/appmap-node/src/parameter.ts:99:57)
      at parameterSchema (/Users/ajp/.npm/_npx/c76987c9a3c183fa/node_modules/appmap-node/src/parameter.ts:93:12)
      at parameter (/Users/ajp/.npm/_npx/c76987c9a3c183fa/node_modules/appmap-node/src/parameter.ts:9:42)
      at optParameter (/Users/ajp/.npm/_npx/c76987c9a3c183fa/node_modules/appmap-node/src/parameter.ts:65:10)
      at makeReturnEvent (/Users/ajp/.npm/_npx/c76987c9a3c183fa/node_modules/appmap-node/src/event.ts:38:31)
      at Recording.functionReturn (/Users/ajp/.npm/_npx/c76987c9a3c183fa/node_modules/appmap-node/src/Recording.ts:55:34)
      at /Users/ajp/.npm/_npx/c76987c9a3c183fa/node_modules/appmap-node/src/recorder.ts:85:17
      at Array.map (<anonymous>)
      at ConfigurableModuleBuilder.record (/Users/ajp/.npm/_npx/c76987c9a3c183fa/node_modules/appmap-node/src/recorder.ts:84:37)
      at ConfigurableModuleBuilder.createTypeProxy (packages/common/module-utils/configurable-module.builder.ts:414:36)
      at ConfigurableModuleBuilder.<anonymous> (packages/common/module-utils/configurable-module.builder.ts:312:34)
      at ConfigurableModuleBuilder.record (/Users/ajp/.npm/_npx/c76987c9a3c183fa/node_modules/appmap-node/src/recorder.ts:81:24)
      at ConfigurableModuleBuilder.build (packages/common/module-utils/configurable-module.builder.ts:304:36)
      at Context.<anonymous> (packages/common/test/module-utils/configurable-module.builder.spec.ts:15:11)
      at processImmediate (node:internal/timers:483:21)

  2) ConfigurableModuleBuilder
       setClassMethodName
         should set static class method name and return typed builder:
     Error: "ASYNC_OPTIONS_TYPE" is not supposed to be used as a value.
      at Object.get (packages/common/module-utils/configurable-module.builder.ts:417:17)
      at isSimpleObject (/Users/ajp/.npm/_npx/c76987c9a3c183fa/node_modules/appmap-node/src/parameter.ts:99:57)
      at parameterSchema (/Users/ajp/.npm/_npx/c76987c9a3c183fa/node_modules/appmap-node/src/parameter.ts:93:12)
      at parameter (/Users/ajp/.npm/_npx/c76987c9a3c183fa/node_modules/appmap-node/src/parameter.ts:9:42)
      at optParameter (/Users/ajp/.npm/_npx/c76987c9a3c183fa/node_modules/appmap-node/src/parameter.ts:65:10)
      at makeReturnEvent (/Users/ajp/.npm/_npx/c76987c9a3c183fa/node_modules/appmap-node/src/event.ts:38:31)
      at Recording.functionReturn (/Users/ajp/.npm/_npx/c76987c9a3c183fa/node_modules/appmap-node/src/Recording.ts:55:34)
      at /Users/ajp/.npm/_npx/c76987c9a3c183fa/node_modules/appmap-node/src/recorder.ts:85:17
      at Array.map (<anonymous>)
      at ConfigurableModuleBuilder.record (/Users/ajp/.npm/_npx/c76987c9a3c183fa/node_modules/appmap-node/src/recorder.ts:84:37)
      at ConfigurableModuleBuilder.createTypeProxy (packages/common/module-utils/configurable-module.builder.ts:414:36)
      at ConfigurableModuleBuilder.<anonymous> (packages/common/module-utils/configurable-module.builder.ts:312:34)
      at ConfigurableModuleBuilder.record (/Users/ajp/.npm/_npx/c76987c9a3c183fa/node_modules/appmap-node/src/recorder.ts:81:24)
      at ConfigurableModuleBuilder.build (packages/common/module-utils/configurable-module.builder.ts:304:36)
      at Context.<anonymous> (packages/common/test/module-utils/configurable-module.builder.spec.ts:32:18)
      at processImmediate (node:internal/timers:483:21)
  1. ConfigurableModuleBuilder
    setFactoryMethodName
    should set configuration factory class method name and return typed builder:
    Error: "ASYNC_OPTIONS_TYPE" is not supposed to be used as a value.
    at Object.get (packages/common/module-utils/configurable-module.builder.ts:417:17)
    at isSimpleObject (/Users/ajp/.npm/_npx/c76987c9a3c183fa/node_modules/appmap-node/src/parameter.ts:99:57)
    at parameterSchema (/Users/ajp/.npm/_npx/c76987c9a3c183fa/node_modules/appmap-node/src/parameter.ts:93:12)
    at parameter (/Users/ajp/.npm/_npx/c76987c9a3c183fa/node_modules/appmap-node/src/parameter.ts:9:42)
    at optParameter (/Users/ajp/.npm/_npx/c76987c9a3c183fa/node_modules/appmap-node/src/parameter.ts:65:10)
    at makeReturnEvent (/Users/ajp/.npm/_npx/c76987c9a3c183fa/node_modules/appmap-node/src/event.ts:38:31)
    at Recording.functionReturn (/Users/ajp/.npm/_npx/c76987c9a3c183fa/node_modules/appmap-node/src/Recording.ts:55:34)
    at /Users/ajp/.npm/_npx/c76987c9a3c183fa/node_modules/appmap-node/src/recorder.ts:85:17
    at Array.map ()
    at ConfigurableModuleBuilder.record (/Users/ajp/.npm/_npx/c76987c9a3c183fa/node_modules/appmap-node/src/recorder.ts:84:37)
    at ConfigurableModuleBuilder.createTypeProxy (packages/common/module-utils/configurable-module.builder.ts:414:36)
    at ConfigurableModuleBuilder. (packages/common/module-utils/configurable-module.builder.ts:312:34)
    at ConfigurableModuleBuilder.record (/Users/ajp/.npm/_npx/c76987c9a3c183fa/node_modules/appmap-node/src/recorder.ts:81:24)
    at ConfigurableModuleBuilder.build (packages/common/module-utils/configurable-module.builder.ts:304:36)
    at Context. (packages/common/test/module-utils/configurable-module.builder.spec.ts:41:74)
    at processImmediate (node:internal/timers:483:21)

  2. ConfigurableModuleBuilder
    build
    should return a fully typed "ConfigurableModuleClass":
    Error: "ASYNC_OPTIONS_TYPE" is not supposed to be used as a value.
    at Object.get (packages/common/module-utils/configurable-module.builder.ts:417:17)
    at isSimpleObject (/Users/ajp/.npm/_npx/c76987c9a3c183fa/node_modules/appmap-node/src/parameter.ts:99:57)
    at parameterSchema (/Users/ajp/.npm/_npx/c76987c9a3c183fa/node_modules/appmap-node/src/parameter.ts:93:12)
    at parameter (/Users/ajp/.npm/_npx/c76987c9a3c183fa/node_modules/appmap-node/src/parameter.ts:9:42)
    at optParameter (/Users/ajp/.npm/_npx/c76987c9a3c183fa/node_modules/appmap-node/src/parameter.ts:65:10)
    at makeReturnEvent (/Users/ajp/.npm/_npx/c76987c9a3c183fa/node_modules/appmap-node/src/event.ts:38:31)
    at Recording.functionReturn (/Users/ajp/.npm/_npx/c76987c9a3c183fa/node_modules/appmap-node/src/Recording.ts:55:34)
    at /Users/ajp/.npm/_npx/c76987c9a3c183fa/node_modules/appmap-node/src/recorder.ts:85:17
    at Array.map ()
    at ConfigurableModuleBuilder.record (/Users/ajp/.npm/_npx/c76987c9a3c183fa/node_modules/appmap-node/src/recorder.ts:84:37)
    at ConfigurableModuleBuilder.createTypeProxy (packages/common/module-utils/configurable-module.builder.ts:414:36)
    at ConfigurableModuleBuilder. (packages/common/module-utils/configurable-module.builder.ts:312:34)
    at ConfigurableModuleBuilder.record (/Users/ajp/.npm/_npx/c76987c9a3c183fa/node_modules/appmap-node/src/recorder.ts:81:24)
    at ConfigurableModuleBuilder.build (packages/common/module-utils/configurable-module.builder.ts:304:36)
    at Context. (packages/common/test/module-utils/configurable-module.builder.spec.ts:53:11)
    at processImmediate (node:internal/timers:483:21)

  3. NestContainer
    addModule
    should add global module when module is global:
    TypeError: Cannot read properties of undefined (reading 'call')
    at Module.set isGlobal [as isGlobal] (packages/core/injector/module.ts:1067:36)
    at NestContainer. (packages/core/injector/container.ts:758:28)
    at async NestContainer. (packages/core/injector/container.ts:723:20)
    at async Context. (packages/core/test/injector/container.spec.ts:63:7)

  4. NestContainer
    replaceModule
    should add global module when module is global:
    TypeError: Cannot read properties of undefined (reading 'call')
    at Module.set isGlobal [as isGlobal] (packages/core/injector/module.ts:1067:36)
    at NestContainer. (packages/core/injector/container.ts:758:28)
    at async NestContainer. (packages/core/injector/container.ts:723:20)
    at async Context. (packages/core/test/injector/container.spec.ts:83:7)

  5. InstanceLoader
    should call "loadPrototype" for every provider and controller in every module:
    ExpectationError: Unexpected call: getModules()
    Expectation met: getModules('[...]') once
    at Object.fail (node_modules/sinon/lib/sinon/mock-expectation.js:314:27)
    at Object.invokeMethod (node_modules/sinon/lib/sinon/mock.js:210:25)
    at NestContainer. (node_modules/sinon/lib/sinon/mock.js:72:35)
    at InstanceLoader. (packages/core/injector/instance-loader.ts:488:79)
    at InstanceLoader.record (/Users/ajp/.npm/_npx/c76987c9a3c183fa/node_modules/appmap-node/src/recorder.ts:81:24)
    at InstanceLoader.createInstancesOfDependencies (packages/core/injector/instance-loader.ts:488:36)
    at Context. (packages/core/test/injector/instance-loader.spec.ts:68:11)
    at processImmediate (node:internal/timers:483:21)

  6. InstanceLoader
    for every provider in every module
    "before each" hook for "should call "loadProvider"":
    ExpectationError: Unexpected call: getModules()
    Expectation met: getModules('[...]') once
    at Object.fail (node_modules/sinon/lib/sinon/mock-expectation.js:314:27)
    at Object.invokeMethod (node_modules/sinon/lib/sinon/mock.js:210:25)
    at NestContainer. (node_modules/sinon/lib/sinon/mock.js:72:35)
    at InstanceLoader. (packages/core/injector/instance-loader.ts:488:79)
    at InstanceLoader.record (/Users/ajp/.npm/_npx/c76987c9a3c183fa/node_modules/appmap-node/src/recorder.ts:81:24)
    at InstanceLoader.createInstancesOfDependencies (packages/core/injector/instance-loader.ts:488:36)
    at Context. (packages/core/test/injector/instance-loader.spec.ts:98:7)
    at processImmediate (node:internal/timers:483:21)

  7. InstanceLoader
    for every controller in every module
    "before each" hook for "should call "loadController"":
    ExpectationError: Unexpected call: getModules()
    Expectation met: getModules('[...]') once
    at Object.fail (node_modules/sinon/lib/sinon/mock-expectation.js:314:27)
    at Object.invokeMethod (node_modules/sinon/lib/sinon/mock.js:210:25)
    at NestContainer. (node_modules/sinon/lib/sinon/mock.js:72:35)
    at InstanceLoader. (packages/core/injector/instance-loader.ts:488:79)
    at InstanceLoader.record (/Users/ajp/.npm/_npx/c76987c9a3c183fa/node_modules/appmap-node/src/recorder.ts:81:24)
    at InstanceLoader.createInstancesOfDependencies (packages/core/injector/instance-loader.ts:488:36)
    at Context. (packages/core/test/injector/instance-loader.spec.ts:135:7)
    at processImmediate (node:internal/timers:483:21)

  8. InstanceLoader
    for every injectable in every module
    "before each" hook for "should call "loadInjectable"":
    ExpectationError: Unexpected call: getModules()
    Expectation met: getModules('[...]') once
    at Object.fail (node_modules/sinon/lib/sinon/mock-expectation.js:314:27)
    at Object.invokeMethod (node_modules/sinon/lib/sinon/mock.js:210:25)
    at NestContainer. (node_modules/sinon/lib/sinon/mock.js:72:35)
    at InstanceLoader. (packages/core/injector/instance-loader.ts:488:79)
    at InstanceLoader.record (/Users/ajp/.npm/_npx/c76987c9a3c183fa/node_modules/appmap-node/src/recorder.ts:81:24)
    at InstanceLoader.createInstancesOfDependencies (packages/core/injector/instance-loader.ts:488:36)
    at Context. (packages/core/test/injector/instance-loader.spec.ts:170:7)
    at processImmediate (node:internal/timers:483:21)

  9. RouterExecutionContext
    create
    when callback metadata is not undefined
    returns proxy function
    when proxy function called
    should apply expected context and arguments to callback:
    Error: Timeout of 2000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves. (/Users/ajp/src/nestjs/nest/packages/core/test/router/router-execution-context.spec.ts)
    at listOnTimeout (node:internal/timers:581:17)
    at processTimers (node:internal/timers:519:7)

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the report with npm test, then inspect the AppMap recorder paths named in the traces: parameter.ts, event.ts, Recording.ts, and recorder.ts. Compare the failures in packages/common/test/module-utils/configurable-module.builder.spec.ts and packages/core/test/injector/container.spec.ts and instance-loader.spec.ts with the corresponding Nest source locations; done means the reported tests no longer fail under recording.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
devtools, testing-qa
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.