enzyme-to-json
enzyme-to-json copied to clipboard
TypeError: Function.prototype.name sham getter called on non-function
When run with --coverage
i get this error..
TypeError: Function.prototype.name sham getter called on non-function
● <ErrorBoundary> component › should render with message if error occour
TypeError: Function.prototype.name sham getter called on non-function
20 | );
21 |
> 22 | expect(wrapper).toMatchSnapshot();
| ^
23 | });
24 |
25 | it("should render if error occour", function() {
at Function.getName (../node_modules/function.prototype.name/implementation.js:31:9)
at displayNameOfNode (../node_modules/enzyme-adapter-utils/build/Utils.js:156:95)
at ReactSixteenAdapter.displayNameOfNode (../node_modules/enzyme-adapter-react-16/build/ReactSixteenAdapter.js:605:62)
at typeName (../node_modules/enzyme/build/Debug.js:60:43)
at internalNodeToJson (../node_modules/enzyme-to-json/mount.js:70:31)
at mountToJson (../node_modules/enzyme-to-json/mount.js:93:12)
at Object.<anonymous>.exports.default (../node_modules/enzyme-to-json/index.js:14:32)
at Object.print (../node_modules/enzyme-to-json/createSerializer.js:22:40)
at printPlugin (../node_modules/pretty-format/build/index.js:287:16)
at prettyFormat (../node_modules/pretty-format/build/index.js:485:16)
at Object.throwingMatcher (../node_modules/expect/build/index.js:320:33)
at Object.toMatchSnapshot (src/components/molecules/ErrorBoundary/ErrorBoundary.test.jsx:22:19)
`
If I not run with coverage, everything works fine
Question posted on Stackoverflow
@Ridermansb might want to mention that you also reported this bug to enzyme proper https://github.com/airbnb/enzyme/issues/1889
Not sure if this got resolved - as I can't see the rest of your test it's hard to tell if you have the same issue as me.
I managed to resolve the issue by changing my .find('a#someid') to actually reference the type - so .findWhere(field => field.type() === FieldText && field.prop('id') === 'displayName')
This may help someone with a similar issue!
I'm running into a related problem. I'm not getting the "sham getter" issue, but I am getting different snapshot results when I use --coverage vs. not use it. I just upgrades to styled-components 5 and that started the problem.
That seems like an issue with whatever --coverage
is, since coverage tools often need to transform code in order to record coverage - it seems entirely unrelated to this issue.
That seems like an issue with whatever
--coverage
is, since coverage tools often need to transform code in order to record coverage - it seems entirely unrelated to this issue.
Thank you @ljharb, that comment helped! It seems that displayName stability was never guaranteed (for snapshots) and we've been lucky thus far. https://github.com/styled-components/babel-plugin-styled-components/issues/151