utils_test.js 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. "use strict";
  2. var assert = require("assert"),
  3. utils = require("./utils");
  4. // Mocha one-liner to make these tests self-hosted
  5. if(!module.parent)return(require.cache[__filename]=null,(new(require("mocha"))({ui:"exports",reporter:"spec",grep:process.env.TEST_GREP})).addFile(__filename).run(process.exit));
  6. exports.utils = {
  7. ".constify()": {
  8. "simple": function() {
  9. var original = {
  10. a: 1,
  11. b: "s"
  12. },
  13. expected = {
  14. a: {
  15. $const: 1
  16. },
  17. b: {
  18. $const: "s"
  19. }
  20. };
  21. assert.deepEqual(utils.constify(original), expected);
  22. },
  23. "array": function() {
  24. var original = {
  25. a: ["s"]
  26. },
  27. expected = {
  28. a: [
  29. {
  30. $const: "s"
  31. }
  32. ]
  33. };
  34. assert.deepEqual(utils.constify(original), expected);
  35. },
  36. "array2": function() {
  37. var original = {
  38. a: [
  39. "s",
  40. [5],
  41. {
  42. a: 5
  43. }
  44. ]
  45. },
  46. expected = {
  47. a: [{
  48. $const: "s"
  49. },
  50. {
  51. $const: [5]
  52. },
  53. {
  54. a: {
  55. $const: 5
  56. }
  57. }]
  58. };
  59. assert.deepEqual(utils.constify(original), expected);
  60. },
  61. "object": function() {
  62. var original = {
  63. a: {
  64. b: {
  65. c: 5
  66. },
  67. d: "hi"
  68. }
  69. },
  70. expected = {
  71. a: {
  72. b: {
  73. c: {
  74. "$const": 5
  75. }
  76. },
  77. d: {
  78. "$const": "hi"
  79. }
  80. }
  81. };
  82. assert.deepEqual(utils.constify(original), expected);
  83. },
  84. "fieldPathExpression": function() {
  85. var original = {
  86. a: "$field.path"
  87. };
  88. assert.deepEqual(utils.constify(original), original);
  89. },
  90. },
  91. };