vscode-jest icon indicating copy to clipboard operation
vscode-jest copied to clipboard

Debug codelenes disappear after window loads

Open thelazydogsback opened this issue 7 years ago • 9 comments
trafficstars

I'm using vscode-jest in conjunction with Wallaby.js for my TypeScript application. I used to see the Debug CodeLens above it() tests, but they no longer stay -- if I restart or do a reload-window, the Debug decoration will appear momentarily, but then disappear. (This is also true if don't start Wallaby.)

If I run vscode-jest in debug mode, I can see that it seems to be throwing a parse error, but it doesn't tell me what the offending file is. Using Jest: Start Runner or using Wallaby I'm able to run jest w/o any issues and can see the test output, so this seems to be specific to invocation for codelens support?

node -v: v10.6.0 npm -v: 6.1.0 npm ls jest -- [email protected] Operating system: Win7

thanks

=============

ERR Unexpected token (1:16): SyntaxError: Unexpected token (1:16) at Parser.pp$5.raise (C:\Users\me.vscode\extensions\orta.vscode-jest-2.9.0\node_modules\babylon\lib\index.js:4454:13) at Parser.pp.unexpected (C:\Users\me.vscode\extensions\orta.vscode-jest-2.9.0\node_modules\babylon\lib\index.js:1761:8) at Parser.pp.expectContextual (C:\Users\me.vscode\extensions\orta.vscode-jest-2.9.0\node_modules\babylon\lib\index.js:1723:39) at Parser.pp$1.parseImport (C:\Users\me.vscode\extensions\orta.vscode-jest-2.9.0\node_modules\babylon\lib\index.js:2869:10) at Parser.pp$1.parseStatement (C:\Users\me.vscode\extensions\orta.vscode-jest-2.9.0\node_modules\babylon\lib\index.js:1884:49) at Parser.parseStatement (C:\Users\me.vscode\extensions\orta.vscode-jest-2.9.0\node_modules\babylon\lib\index.js:5910:22) at Parser.pp$1.parseBlockBody (C:\Users\me.vscode\extensions\orta.vscode-jest-2.9.0\node_modules\babylon\lib\index.js:2268:21) at Parser.pp$1.parseTopLevel (C:\Users\me.vscode\extensions\orta.vscode-jest-2.9.0\node_modules\babylon\lib\index.js:1778:8) at Parser.parse (C:\Users\me.vscode\extensions\orta.vscode-jest-2.9.0\node_modules\babylon\lib\index.js:1673:17) at parse (C:\Users\me.vscode\extensions\orta.vscode-jest-2.9.0\node_modules\babylon\lib\index.js:7305:37) at Snapshot.exports.getASTfor.file [as _parser] (C:\Users\me.vscode\extensions\orta.vscode-jest-2.9.0\node_modules\jest-editor-support\build\parsers\babylon_parser.js:29:50) at Snapshot.getMetadata (C:\Users\me.vscode\extensions\orta.vscode-jest-2.9.0\node_modules\jest-editor-support\build\Snapshot.js:108:27) at SnapshotCodeLensProvider.provideCodeLenses (C:\Users\me.vscode\extensions\orta.vscode-jest-2.9.0\out\src\SnapshotCodeLens\SnapshotCodeLensProvider.js:23:26) at c:\Users\me\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\node\extensionHostProcess.js:733:575 at c:\Users\me\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\node\extensionHostProcess.js:110:323 at new n.Class.derive._oncancel (c:\Users\me\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\node\extensionHostProcess.js:84:776) at Object.t.asWinJsPromise (c:\Users\me\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\node\extensionHostProcess.js:110:286) at e.provideCodeLenses (c:\Users\me\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\node\extensionHostProcess.js:733:529) at c:\Users\me\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\node\extensionHostProcess.js:748:337 at e._withAdapter (c:\Users\me\AppData\Local\Programs\Microsoft VS ...

thelazydogsback avatar Sep 02 '18 00:09 thelazydogsback

what is the state of the tests you expect to see the debug codeLense? What are your codeLense related settings?

The default settings for codeLense are:

"jest.enableCodeLens": true,
"jest.debugCodeLens.showWhenTestStateIn": [
    "fail",
    "unknown"
  ]

which means it will only show debug codeLense for the tests are either unknown or fail. Once the tests are run and passed, the codeLense will disappear. If you want the codeLense to appear for tests that passed, you can customize:

"jest.debugCodeLens.showWhenTestStateIn": [
    "fail",
    "unknown",
    "pass"
  ]

possible tests status are:

export enum TestState {
  Fail = 'fail',
  Pass = 'pass',
  Skip = 'skip',
  Unknown = 'unknown',
}

connectdotz avatar Sep 04 '18 03:09 connectdotz

For people, like me, who don't know where to set these settings.

  • If you don't have a .vscode directory in the root of your project create it.
  • In the .vscode directory create file settings.json
  • In settings.json write your settings, eg.:
{
  "jest.debugCodeLens.showWhenTestStateIn": [
    "fail",
    "unknown",
    "pass"
  ]
}

Nxtra avatar Oct 28 '20 11:10 Nxtra

I'm having a similar issue. However, for me, the debug button suddenly stopped showing up at all.

node -v: v14.16.0 npm -v: 7.6.3 npm ls jest -- [email protected] Operating system: Ubuntu on WSL2

In my settings file::

"jest.debugCodeLens.showWhenTestStateIn": [
    "pass",
    "skip",
    "fail",
    "unknown"
  ],

I'm getting the following parse error:

mainThreadExtensionService.ts:59 [[object Object]]Unexpected token (38:32)
$onExtensionRuntimeError @ mainThreadExtensionService.ts:59
_doInvokeHandler @ rpcProtocol.ts:417
_invokeHandler @ rpcProtocol.ts:402
_receiveRequest @ rpcProtocol.ts:318
_receiveOneMessage @ rpcProtocol.ts:245
(anonymous) @ rpcProtocol.ts:110
fire @ event.ts:622
fire @ ipc.net.ts:468
_receiveMessage @ ipc.net.ts:821
(anonymous) @ ipc.net.ts:660
fire @ event.ts:622
acceptChunk @ ipc.net.ts:241
(anonymous) @ ipc.net.ts:202
(anonymous) @ browserSocketFactory.ts:178
fire @ event.ts:622
_fileReader.onload @ browserSocketFactory.ts:62
mainThreadExtensionService.ts:60 SyntaxError: Unexpected token (38:32)
	at t.J.raise (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:369)
	at t.U.unexpected (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:369)
	at t.G.parseExprAtom (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:369)
	at t.parseExprAtom (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:370)
	at t.G.parseExprSubscripts (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:369)
	at t.G.parseMaybeUnary (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:369)
	at t.G.parseExprOps (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:369)
	at t.G.parseMaybeConditional (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:369)
	at t.G.parseMaybeAssign (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:369)
	at t.parseMaybeAssign (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:370)
	at t.G.parseConditional (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:369)
	at t.parseConditional (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:370)
	at t.G.parseMaybeConditional (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:369)
	at t.G.parseMaybeAssign (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:369)
	at t.parseMaybeAssign (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:370)
	at t.G.parseObjectProperty (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:369)
	at t.G.parseObjPropValue (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:369)
	at t.parseObjPropValue (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:370)
	at t.G.parseObj (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:369)
	at t.G.parseExprAtom (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:369)
	at t.parseExprAtom (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:370)
	at t.G.parseExprSubscripts (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:369)
	at t.G.parseMaybeUnary (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:369)
	at t.G.parseExprOps (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:369)
	at t.G.parseMaybeConditional (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:369)
	at t.G.parseMaybeAssign (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:369)
	at t.parseMaybeAssign (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:370)
	at t.G.parseExprListItem (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:369)
	at t.parseExprListItem (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:370)
	at t.G.parseCallExpressionArguments (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:369)
	at t.G.parseSubscripts (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:369)
	at t.G.parseExprSubscripts (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:369)
	at t.G.parseMaybeUnary (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:369)
	at t.G.parseExprOps (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:369)
	at t.G.parseMaybeConditional (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:369)
	at t.G.parseMaybeAssign (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:369)
	at t.parseMaybeAssign (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:370)
	at t.G.parseExpression (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:369)
	at t.V.parseStatement (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:369)
	at t.parseStatement (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:370)
	at t.V.parseBlockBody (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:369)
	at t.V.parseBlock (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:369)
	at t.G.parseFunctionBody (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:369)
	at t.parseFunctionBody (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:370)
	at t.G.parseMethod (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:369)
	at t.G.parseObjectMethod (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:369)
	at t.G.parseObjPropValue (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:369)
	at t.parseObjPropValue (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:370)
	at t.G.parseObj (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:369)
	at t.G.parseExprAtom (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:369)
	at t.parseExprAtom (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:370)
	at t.G.parseExprSubscripts (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:369)
	at t.G.parseMaybeUnary (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:369)
	at t.G.parseExprOps (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:369)
	at t.G.parseMaybeConditional (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:369)
	at t.G.parseMaybeAssign (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:369)
	at t.parseMaybeAssign (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:370)
	at t.G.parseExprListItem (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:369)
	at t.parseExprListItem (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:370)
	at t.G.parseCallExpressionArguments (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:369)
	at t.G.parseSubscripts (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:369)
	at t.G.parseExprSubscripts (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:369)
	at t.G.parseMaybeUnary (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:369)
	at t.G.parseExprOps (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:369)
	at t.G.parseMaybeConditional (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:369)
	at t.G.parseMaybeAssign (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:369)
	at t.parseMaybeAssign (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:370)
	at t.V.parseVar (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:369)
	at t.V.parseVarStatement (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:369)
	at t.V.parseStatement (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:369)
	at t.parseStatement (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:370)
	at t.V.parseBlockBody (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:369)
	at t.V.parseBlock (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:369)
	at t.G.parseFunctionBody (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:369)
	at t.parseFunctionBody (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:370)
	at t.G.parseArrowExpression (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:369)
	at t.G.parseParenAndDistinguishExpression (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:369)
	at t.G.parseExprAtom (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:369)
	at t.parseExprAtom (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:370)
	at t.G.parseExprSubscripts (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:369)
	at t.G.parseMaybeUnary (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:369)
	at t.G.parseExprOps (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:369)
	at t.G.parseMaybeConditional (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:369)
	at t.G.parseMaybeAssign (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:369)
	at t.parseMaybeAssign (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:370)
	at t.V.parseVar (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:369)
	at t.V.parseVarStatement (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:369)
	at t.V.parseStatement (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:369)
	at t.parseStatement (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:370)
	at t.V.parseBlockBody (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:369)
	at t.V.parseTopLevel (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:369)
	at t.parse (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:369)
	at t.parse (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:370)
	at s (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:129)
	at t.parse (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:129)
	at Object.t.default (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:370)
	at Object.t.parseTest (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:385)
	at t.TestResultProvider.getResults (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:385)
	at t.TestResultProvider.getSortedResults (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:385)
	at t.JestExt.triggerUpdateActiveEditor (/home/zrean/.vscode-server/extensions/orta.vscode-jest-3.2.0/out/extension.js:385)

TheSimpleZ avatar Mar 16 '21 18:03 TheSimpleZ

@TheSimpleZ the Unexpected token usually means test file parsing error, which will prevent the extension from decorating the code, including adding debug codelens on top of the tests. If your code can be compiled, i.e. no syntax error, then it could be an error on our side... In that case, we have fixed quite a bit of parsing related issues in the up-coming release, please feel free to give it a try: alpha-4

connectdotz avatar Mar 19 '21 16:03 connectdotz

@connectdotz I get a similar error to @TheSimpleZ. In my case, this is because a few of my tests use the nullish coalescing operator. If I remove these, the Debug/Run codelens links start appearing again.

It still fails with v4.0.0-alpha.4, but at least the Debug codelens appears there.

trylle avatar Mar 22 '21 05:03 trylle

@trylle that is strange, I don't have any problem parsing the test with the nullish coalescing operators... did you see any error in the developer-tool console? We can investigate further if you can create a sample repo or at least some code snippets...

connectdotz avatar Apr 08 '21 21:04 connectdotz

All of a sudden, I'm getting this error as well. It used to work.

portenez avatar Jan 31 '22 10:01 portenez

@portenez what's the error in your console log?

connectdotz avatar Feb 05 '22 21:02 connectdotz