Add unit tests for @spina, and fix various issues that were found.

Review Request #12918 — Created March 24, 2023 and submitted — Latest diff uploaded

Information

Spina
master

Reviewers

This change adds unit tests that cover the @spina decorator, testing
all options and behaviors.

While working on this, the following issues were found and fixed:

  • Instances created from a Spina class were lacking the typing to access
    Spina state and methods.

  • __spinaOptions wasn't marked readonly (fixing this required adding a
    new MutableSpinaClass so class prep could set this option).

  • __spinaOptions was always duplicated, wasting memory, since we
    weren't checking for emptiness correctly.

  • automergeAttrs retained attributes that were skipped.

  • Wrong names for classes could be used.

  • __super__ wasn't read-only.

Unit tests pass.

Diff Revision 1 (Latest)

Commits

First Last Summary ID Author
Add unit tests for @spina, and fix various issues that were found.
This change adds unit tests that cover the `@spina` decorator, testing all options and behaviors. While working on this, the following issues were found and fixed: * Instances created from a Spina class were lacking the typing to access Spina state and methods. * `__spinaOptions` wasn't marked readonly (fixing this required adding a new `MutableSpinaClass` so class prep could set this option). * `__spinaOptions` was always duplicated, wasting memory, since we weren't checking for emptiness correctly. * `automergeAttrs` retained attributes that were skipped. * Wrong names for classes could be used. * `__super__` wasn't read-only.
0af66a34ad911bf252368c2f99581341d3a79407 Christian Hammond
src/objects.ts
src/tests/spinaSubclassTests.ts
Loading...