aurelia / aurelia/testing

Unable to run unittest that contain ValidationRules

Open
#94 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
TypeScript
Stars
38
Forks
27
PR merge metrics
No merged PRs in 30d

Description

**I'm submitting a bug report**

* **Library Version:**
1.0.0

**Please tell us about your environment:**
* **Operating System:**
Windows 10

* **Node Version:**
V10.16.0

* **NPM Version:**
6.9.0

* **JSPM OR Webpack AND Version**
webpack 4.34.0

* **Browser:**
n/a

* **Language:**
TypeScript 3.1.2

**Current behavior:**
When running a test that tests a component which uses ValidationRules, the following error pops up:

```Error invoking App. Check the inner error for details.
------------------------------------------------
Inner Error:
Message: Unable to parse accessor function:
function (a) {
/* istanbul ignore next */
cov_q8rv1u7dl.f[2]++;
cov_q8rv1u7dl.s[5]++;
return a.message;
}
Inner Error Stack:
Error: Unable to parse accessor function:
function (a) {
/* istanbul ignore next */
cov_q8rv1u7dl.f[2]++;
cov_q8rv1u7dl.s[5]++;
return a.message;
}

at getAccessorExpression (node_modules/aurelia-validation/dist/commonjs/aurelia-validation.js:113:15)
at PropertyAccessorParser.Object..PropertyAccessorParser.parse (node_modules/aurelia-validation/dist/commonjs/aurelia-validation.js:95:28)
at FluentEnsure.Object..FluentEnsure.ensure (node_modules/aurelia-validation/dist/commonjs/aurelia-validation.js:1703:42)
at Function.Object..ValidationRules.ensure (node_modules/aurelia-validation/dist/commonjs/aurelia-validation.js:1770:58)
at new App (src/app.ts:219:42)
at Object.invoke (node_modules/aurelia-dependency-injection/dist/commonjs/aurelia-dependency-injection.js:379:24)
at InvocationHandler.Object..InvocationHandler.invoke (node_modules/aurelia-dependency-injection/dist/commonjs/aurelia-dependency-injection.js:352:28)
at Container.Object..Container.invoke (node_modules/aurelia-dependency-injection/dist/commonjs/aurelia-dependency-injection.js:538:28)
at ProviderResolver.get (node_modules/aurelia-templating/dist/commonjs/aurelia-templating.js:2305:72)
at Container.Object..Container.get (node_modules/aurelia-dependency-injection/dist/commonjs/aurelia-dependency-injection.js:493:28)
End Inner Error Stack
------------------------------------------------
at new AggregateError (node_modules/aurelia-pal/dist/commonjs/aurelia-pal.js:37:11)
at Container.Object..Container.invoke (node_modules/aurelia-dependency-injection/dist/commonjs/aurelia-dependency-injection.js:541:19)
at ProviderResolver.get (node_modules/aurelia-templating/dist/commonjs/aurelia-templating.js:2305:72)
at Container.Object..Container.get (node_modules/aurelia-dependency-injection/dist/commonjs/aurelia-dependency-injection.js:493:28)
at Container.elementContainerGet [as get] (node_modules/aurelia-templating/dist/commonjs/aurelia-templating.js:2360:15)
at HtmlBehaviorResource.create (node_modules/aurelia-templating/dist/commonjs/aurelia-templating.js:4379:56)
at applyInstructions (node_modules/aurelia-templating/dist/commonjs/aurelia-templating.js:2470:31)
at ViewFactory.create (node_modules/aurelia-templating/dist/commonjs/aurelia-templating.js:2691:7)
at TemplatingEngine.enhance (node_modules/aurelia-templating/dist/commonjs/aurelia-templating.js:5227:24)
at node_modules/aurelia-framework/dist/commonjs/aurelia-framework.js:176:28
```

I have searched for a proper way to unittest this, but I'm unable to find a solution. Hopefully the community can help me out.

**What is the expected behavior?**
A possibility to run unittest that contains ValidationRules without it throwing an exception.

I have created a public repo where you can find all the files necessary: https://github.com/JordyThien/aurelia-unittest-validation-rules
Basically I created a new aurelia project using the aurelia CLI: `au new aurelia-testing --unattended --select typescript,jest,vscode --here`

I've updated the https://github.com/JordyThien/aurelia-unittest-validation-rules/blob/master/src/app.ts to contain ValidationRules
And I updated the spec to add `aurelia-validation`
Where running the tests using `au test` the exception will be thrown.

Contributor guide

Open the contributing guide

Research direction

Start with src/app.ts and the updated spec in the linked reproduction repository, then run `au test` to reproduce the ValidationRules failure. Trace the reported call into aurelia-validation.js and compare the test setup with the application setup. Done means the component test runs without the accessor parsing exception.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript, webpack
Domain
frontend, testing
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.