Comments (6)
Curious! Is jest configured to use any sort of transpilation (e.g. via babel)?
from schwifty.
Ah, why didn't I think about it! Indeed it is:
// test/jest.setup.js
require('@babel/polyfill');
But without it I get the ReferenceError: regeneratorRuntime is not defined
in tests. :(
from schwifty.
Yep, seems like it's mutually exclusive. I've tried to replace babel polyfill with regenerator-runtime:
// test/jest.setup.js
// require('@babel/polyfill');
require('regenerator-runtime/runtime');
and got the same Joi validation error as described in the first post.
Can maybe the Joi schema be made less restrictive?
// schwifty/lib/schema.js
// internals.model = Joi.func().class();
internals.model = Joi.func();
from schwifty.
There's really no need to transpile classes away in nodejs, and I highly suggest testing the code you're going to run in production, which I hope is not transpiled for a variety of reasons. I think the fix here is to your project's test suite. Mostly likely the polyfill itself is not responsible for the transpilation of classes to functions—you likely have @babel/preset-env setup somewhere, and you can try to configure that to omit certain transformations, or to only transpile your client-side directories.
from schwifty.
I was wrong, sorry for bothering you. :) For anyone facing the same problem: indeed, the solution is just to exclude the server (but not the client) code from being transpiled altogether:
// jest.config.js
transformIgnorePatterns: ['<rootDir>/server/', '<rootDir>/node_modules/'],
See details here: https://jestjs.io/docs/en/configuration#transformignorepatterns-array-string
from schwifty.
Glad you got it sorted out!
from schwifty.
Related Issues (20)
- Error: "schwifty" is not a method on the passed server. HOT 2
- 6.0.0 Release Notes
- Typings HOT 1
- Update peer dependency to allow Objection v3
- How to use Schwifty models in a seed file? HOT 2
- Upgrade deprecated version of hoek
- Support objection v2
- Update API links in docs to point to hapi.dev
- Support joi v16 HOT 1
- Provide migrations stub/template file
- Support hapi v19
- Model/knex namespacing and sandboxing
- Allow models to opt out of knex binding
- Allow models to provide a custom schwifty model name HOT 2
- Support hapi v20 HOT 1
- Proposed plugin API changes for v6
- Drop support for node v10 and below, hapi v18 and below, addl. objection, knex
- Publish on npm as @hapipal scoped package
- Internal validation using joi rather than @hapi/joi, which doesn't match dependencies
- Remove Model.getJoiSchema(), add Model.joiSchemaPatch
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from schwifty.