NOTE - Also posted this bug here in aldeed:collection2. Wasn't sure which package it's rooted in. Will close in both once it's resolved.
Describe the bug
Ran into an issue upgrading my project to Meteor 2.16 from 2.7.2 (on my way up to 3.0).
When using aldeed:collection2@4.0.2 with the included aldeed:simple-schema@1.13.1 on a Meteor 2.16 project along with matb33:collection-hooks@1.3.1 (latest version), using the collection hook's direct versions that bypass a collection's hook will cause the defaultValue and autoValue set in the schema to also not run. The added logic in the defined simple schema gets bypassed and the document gets inserted/updated as if simple schema doesn't exist. I have tested matb33:collection-hooks and it seems the problem is rooted in aldeed:collection2 or aldeed:simple-schema. If you drop back down to aldeed:collection2@3.5.0 and use meteor npm install simpl-schema@1.13.1 with any version of matb33:collection-hooks all works as expected.
To Reproduce
I've hotrodded the React Simple Todos demo to display the error in a repo here.
The repo has the following currently added:
aldeed:collection2@4.0.2
aldeed:simple-schema@1.13.1
matb33:collection-hooks@1.3.1
- Click on the Add New Link button.
A link will be inserted in the list without using the direct version in the insert. The insert is performed and the link's description and createdAt are all successfully set using either Simple Schema's defaultValue or autoValue. You'll also notice the link's linkType is set to "video" by the defined and working LinksCollection.before.insert hook.
- Click on the Add New Link (Direct) button.
A link will be inserted in the list using the direct version in the insert. The insert is performed but the link will not get any of the Simple Schema logic (e.g. defaultValue or autoValue) however it does get inserted. And the hook is not performed so its linkType is still "website".
Expected behavior
Making use of a matb33:collection-hook direct call should still run the Simple Schema logic (e.g. defaultValue or autoValue) and validation. Using aldeed:collection2@3.5.0 and meteor npm install simpl-schema@1.12.3 all works as expected. Feel free to comment out aldeed:collection2 and uncomment aldeed:collection2@3.5.0 in the packages.js file and then do a meteor npm install simpl-schema@1.13.1 and then update the import in links.js to see it working correctly on the prior versions.
NOTE - Also posted this bug here in
aldeed:collection2. Wasn't sure which package it's rooted in. Will close in both once it's resolved.Describe the bug
Ran into an issue upgrading my project to Meteor 2.16 from 2.7.2 (on my way up to 3.0).
When using
aldeed:collection2@4.0.2with the includedaldeed:simple-schema@1.13.1on a Meteor 2.16 project along withmatb33:collection-hooks@1.3.1(latest version), using the collection hook'sdirectversions that bypass a collection's hook will cause thedefaultValueandautoValueset in the schema to also not run. The added logic in the defined simple schema gets bypassed and the document gets inserted/updated as if simple schema doesn't exist. I have testedmatb33:collection-hooksand it seems the problem is rooted inaldeed:collection2oraldeed:simple-schema. If you drop back down toaldeed:collection2@3.5.0and usemeteor npm install simpl-schema@1.13.1with any version ofmatb33:collection-hooksall works as expected.To Reproduce
I've hotrodded the React Simple Todos demo to display the error in a repo here.
The repo has the following currently added:
A link will be inserted in the list without using the
directversion in theinsert. Theinsertis performed and the link'sdescriptionandcreatedAtare all successfully set using either Simple Schema'sdefaultValueorautoValue. You'll also notice the link'slinkTypeis set to "video" by the defined and workingLinksCollection.before.inserthook.A link will be inserted in the list using the
directversion in theinsert. Theinsertis performed but the link will not get any of the Simple Schema logic (e.g.defaultValueorautoValue) however it does get inserted. And the hook is not performed so itslinkTypeis still "website".Expected behavior
Making use of a
matb33:collection-hookdirectcall should still run the Simple Schema logic (e.g.defaultValueorautoValue) and validation. Usingaldeed:collection2@3.5.0andmeteor npm install simpl-schema@1.12.3all works as expected. Feel free to comment outaldeed:collection2and uncommentaldeed:collection2@3.5.0in thepackages.jsfile and then do ameteor npm install simpl-schema@1.13.1and then update theimportinlinks.jsto see it working correctly on the prior versions.