query_variable.jest.ts 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. import { QueryVariable } from "../query_variable";
  2. describe("QueryVariable", () => {
  3. describe("when creating from model", () => {
  4. it("should set defaults", () => {
  5. var variable = new QueryVariable({}, null, null, null, null);
  6. expect(variable.datasource).toBe(null);
  7. expect(variable.refresh).toBe(0);
  8. expect(variable.sort).toBe(0);
  9. expect(variable.name).toBe("");
  10. expect(variable.hide).toBe(0);
  11. expect(variable.options.length).toBe(0);
  12. expect(variable.multi).toBe(false);
  13. expect(variable.includeAll).toBe(false);
  14. });
  15. it("get model should copy changes back to model", () => {
  16. var variable = new QueryVariable({}, null, null, null, null);
  17. variable.options = [{ text: "test" }];
  18. variable.datasource = "google";
  19. variable.regex = "asd";
  20. variable.sort = 50;
  21. var model = variable.getSaveModel();
  22. expect(model.options.length).toBe(1);
  23. expect(model.options[0].text).toBe("test");
  24. expect(model.datasource).toBe("google");
  25. expect(model.regex).toBe("asd");
  26. expect(model.sort).toBe(50);
  27. });
  28. it("if refresh != 0 then remove options in presisted mode", () => {
  29. var variable = new QueryVariable({}, null, null, null, null);
  30. variable.options = [{ text: "test" }];
  31. variable.refresh = 1;
  32. var model = variable.getSaveModel();
  33. expect(model.options.length).toBe(0);
  34. });
  35. });
  36. describe("can convert and sort metric names", () => {
  37. var variable = new QueryVariable({}, null, null, null, null);
  38. variable.sort = 3; // Numerical (asc)
  39. describe("can sort a mixed array of metric variables", () => {
  40. var input = [
  41. { text: "0", value: "0" },
  42. { text: "1", value: "1" },
  43. { text: null, value: 3 },
  44. { text: undefined, value: 4 },
  45. { text: "5", value: null },
  46. { text: "6", value: undefined },
  47. { text: null, value: "7" },
  48. { text: undefined, value: "8" },
  49. { text: 9, value: null },
  50. { text: 10, value: undefined },
  51. { text: "", value: undefined },
  52. { text: undefined, value: "" }
  53. ];
  54. var result = variable.metricNamesToVariableValues(input);
  55. it("should return in same order", () => {
  56. var i = 0;
  57. expect(result.length).toBe(11);
  58. expect(result[i++].text).toBe("");
  59. expect(result[i++].text).toBe("0");
  60. expect(result[i++].text).toBe("1");
  61. expect(result[i++].text).toBe("3");
  62. expect(result[i++].text).toBe("4");
  63. expect(result[i++].text).toBe("5");
  64. expect(result[i++].text).toBe("6");
  65. });
  66. });
  67. });
  68. });