NodeMetadata.spec.ts 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. import 'reflect-metadata';
  2. import * as ESTree from 'estree';
  3. import { assert } from 'chai';
  4. import { NodeMetadata } from '../../../../src/node/NodeMetadata';
  5. import { NodeFactory } from '../../../../src/node/NodeFactory';
  6. describe('NodeMetadata', () => {
  7. describe('set', () => {
  8. const expectedMetadata: ESTree.IdentifierNodeMetadata = {
  9. ignoredNode: true,
  10. renamedIdentifier: true
  11. };
  12. let node: ESTree.Identifier;
  13. before(() => {
  14. node = NodeFactory.identifierNode('foo');
  15. NodeMetadata.set(node, {
  16. ignoredNode: true,
  17. renamedIdentifier: true
  18. })
  19. });
  20. it('should set metadata to the node', () => {
  21. assert.deepPropertyVal(node, 'metadata', expectedMetadata);
  22. });
  23. });
  24. describe('get', () => {
  25. const expectedValue: boolean = true;
  26. let node: ESTree.Identifier,
  27. value: boolean | undefined;
  28. before(() => {
  29. node = NodeFactory.identifierNode('foo');
  30. node.metadata = {};
  31. node.metadata.renamedIdentifier = true;
  32. value = NodeMetadata.get<ESTree.IdentifierNodeMetadata>(node, 'renamedIdentifier');
  33. });
  34. it('should get metadata value of the node', () => {
  35. assert.equal(value, expectedValue);
  36. });
  37. });
  38. describe('isIgnoredNode (node: ESTree.Node): boolean', () => {
  39. const expectedValue: boolean = true;
  40. let node: ESTree.Identifier,
  41. value: boolean | undefined;
  42. before(() => {
  43. node = NodeFactory.identifierNode('foo');
  44. node.metadata = {};
  45. node.metadata.ignoredNode = true;
  46. value = NodeMetadata.isIgnoredNode(node);
  47. });
  48. it('should return metadata value', () => {
  49. assert.equal(value, expectedValue);
  50. });
  51. });
  52. describe('isRenamedIdentifier (identifierNode: ESTree.Identifier): boolean', () => {
  53. const expectedValue: boolean = true;
  54. let node: ESTree.Identifier,
  55. value: boolean | undefined;
  56. before(() => {
  57. node = NodeFactory.identifierNode('foo');
  58. node.metadata = {};
  59. node.metadata.renamedIdentifier = true;
  60. value = NodeMetadata.isRenamedIdentifier(node);
  61. });
  62. it('should return metadata value', () => {
  63. assert.equal(value, expectedValue);
  64. });
  65. });
  66. describe('isReplacedLiteral (literalNode: ESTree.Literal): boolean', () => {
  67. const expectedValue: boolean = true;
  68. let node: ESTree.Literal,
  69. value: boolean | undefined;
  70. before(() => {
  71. node = NodeFactory.literalNode('foo');
  72. node.metadata = {};
  73. node.metadata.replacedLiteral = true;
  74. value = NodeMetadata.isReplacedLiteral(node);
  75. });
  76. it('should return metadata value', () => {
  77. assert.equal(value, expectedValue);
  78. });
  79. });
  80. });