| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- import * as rangeUtil from "app/core/utils/rangeutil";
- import _ from "lodash";
- import moment from "moment";
- describe("rangeUtil", () => {
- describe("Can get range grouped list of ranges", () => {
- it("when custom settings should return default range list", () => {
- var groups = rangeUtil.getRelativeTimesList(
- { time_options: [] },
- "Last 5 minutes"
- );
- expect(_.keys(groups).length).toBe(4);
- expect(groups[3][0].active).toBe(true);
- });
- });
- describe("Can get range text described", () => {
- it("should handle simple old expression with only amount and unit", () => {
- var info = rangeUtil.describeTextRange("5m");
- expect(info.display).toBe("Last 5 minutes");
- });
- it("should have singular when amount is 1", () => {
- var info = rangeUtil.describeTextRange("1h");
- expect(info.display).toBe("Last 1 hour");
- });
- it("should handle non default amount", () => {
- var info = rangeUtil.describeTextRange("13h");
- expect(info.display).toBe("Last 13 hours");
- expect(info.from).toBe("now-13h");
- });
- it("should handle non default future amount", () => {
- var info = rangeUtil.describeTextRange("+3h");
- expect(info.display).toBe("Next 3 hours");
- expect(info.from).toBe("now");
- expect(info.to).toBe("now+3h");
- });
- it("should handle now/d", () => {
- var info = rangeUtil.describeTextRange("now/d");
- expect(info.display).toBe("Today so far");
- });
- it("should handle now/w", () => {
- var info = rangeUtil.describeTextRange("now/w");
- expect(info.display).toBe("This week so far");
- });
- it("should handle now/M", () => {
- var info = rangeUtil.describeTextRange("now/M");
- expect(info.display).toBe("This month so far");
- });
- it("should handle now/y", () => {
- var info = rangeUtil.describeTextRange("now/y");
- expect(info.display).toBe("This year so far");
- });
- });
- describe("Can get date range described", () => {
- it("Date range with simple ranges", () => {
- var text = rangeUtil.describeTimeRange({ from: "now-1h", to: "now" });
- expect(text).toBe("Last 1 hour");
- });
- it("Date range with rounding ranges", () => {
- var text = rangeUtil.describeTimeRange({ from: "now/d+6h", to: "now" });
- expect(text).toBe("now/d+6h to now");
- });
- it("Date range with absolute to now", () => {
- var text = rangeUtil.describeTimeRange({
- from: moment([2014, 10, 10, 2, 3, 4]),
- to: "now"
- });
- expect(text).toBe("Nov 10, 2014 02:03:04 to a few seconds ago");
- });
- it("Date range with absolute to relative", () => {
- var text = rangeUtil.describeTimeRange({
- from: moment([2014, 10, 10, 2, 3, 4]),
- to: "now-1d"
- });
- expect(text).toBe("Nov 10, 2014 02:03:04 to a day ago");
- });
- it("Date range with relative to absolute", () => {
- var text = rangeUtil.describeTimeRange({
- from: "now-7d",
- to: moment([2014, 10, 10, 2, 3, 4])
- });
- expect(text).toBe("7 days ago to Nov 10, 2014 02:03:04");
- });
- it("Date range with non matching default ranges", () => {
- var text = rangeUtil.describeTimeRange({ from: "now-13h", to: "now" });
- expect(text).toBe("Last 13 hours");
- });
- it("Date range with from and to both are in now-* format", () => {
- var text = rangeUtil.describeTimeRange({ from: "now-6h", to: "now-3h" });
- expect(text).toBe("now-6h to now-3h");
- });
- it("Date range with from and to both are either in now-* or now/* format", () => {
- var text = rangeUtil.describeTimeRange({
- from: "now/d+6h",
- to: "now-3h"
- });
- expect(text).toBe("now/d+6h to now-3h");
- });
- it("Date range with from and to both are either in now-* or now+* format", () => {
- var text = rangeUtil.describeTimeRange({ from: "now-6h", to: "now+1h" });
- expect(text).toBe("now-6h to now+1h");
- });
- });
- });
|