NodeMetadata.spec.ts 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  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.LiteralNodeMetadata = {
  9. ignoredNode: true,
  10. stringArrayCallLiteralNode: true
  11. };
  12. let node: ESTree.Literal;
  13. before(() => {
  14. node = NodeFactory.literalNode('foo');
  15. NodeMetadata.set(node, {
  16. ignoredNode: true,
  17. stringArrayCallLiteralNode: 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.Literal,
  27. value: boolean | undefined;
  28. before(() => {
  29. node = NodeFactory.literalNode('foo');
  30. node.metadata = {};
  31. node.metadata.stringArrayCallLiteralNode = true;
  32. value = NodeMetadata.get<
  33. ESTree.LiteralNodeMetadata,
  34. 'stringArrayCallLiteralNode'
  35. >(node, 'stringArrayCallLiteralNode');
  36. });
  37. it('should get metadata value of the node', () => {
  38. assert.equal(value, expectedValue);
  39. });
  40. });
  41. describe('isForceTransformNode', () => {
  42. const expectedValue: boolean = true;
  43. let node: ESTree.Identifier,
  44. value: boolean | undefined;
  45. before(() => {
  46. node = NodeFactory.identifierNode('foo');
  47. node.metadata = {};
  48. node.metadata.forceTransformNode = true;
  49. value = NodeMetadata.isForceTransformNode(node);
  50. });
  51. it('should return metadata value', () => {
  52. assert.equal(value, expectedValue);
  53. });
  54. });
  55. describe('isIgnoredNode', () => {
  56. const expectedValue: boolean = true;
  57. let node: ESTree.Identifier,
  58. value: boolean | undefined;
  59. before(() => {
  60. node = NodeFactory.identifierNode('foo');
  61. node.metadata = {};
  62. node.metadata.ignoredNode = true;
  63. value = NodeMetadata.isIgnoredNode(node);
  64. });
  65. it('should return metadata value', () => {
  66. assert.equal(value, expectedValue);
  67. });
  68. });
  69. describe('propertyKeyToRenameNode', () => {
  70. const expectedValue: boolean = true;
  71. let node: ESTree.Identifier,
  72. value: boolean | undefined;
  73. before(() => {
  74. node = NodeFactory.identifierNode('foo');
  75. node.metadata = {};
  76. node.metadata.propertyKeyToRenameNode = true;
  77. value = NodeMetadata.isPropertyKeyToRenameNode(node);
  78. });
  79. it('should return metadata value', () => {
  80. assert.equal(value, expectedValue);
  81. });
  82. });
  83. describe('isStringArrayCallLiteralNode', () => {
  84. const expectedValue: boolean = true;
  85. let node: ESTree.Literal,
  86. value: boolean | undefined;
  87. before(() => {
  88. node = NodeFactory.literalNode('foo');
  89. node.metadata = {};
  90. node.metadata.stringArrayCallLiteralNode = true;
  91. value = NodeMetadata.isStringArrayCallLiteralNode(node);
  92. });
  93. it('should return metadata value', () => {
  94. assert.equal(value, expectedValue);
  95. });
  96. });
  97. });