github.com/tilt-dev/tilt@v0.33.15-0.20240515162809-0a22ed45d8a0/web/src/time.test.ts (about)

     1  import moment from "moment"
     2  import { formatBuildDuration } from "./time"
     3  
     4  it("format durations correctly", () => {
     5    function assertFormatted(expected: string, ms: number) {
     6      expect(formatBuildDuration(moment.duration(ms))).toEqual(expected)
     7    }
     8  
     9    let second = 1000
    10    assertFormatted("1.0s", second)
    11    assertFormatted("20s", 20 * second)
    12    assertFormatted("40s", 40 * second)
    13    assertFormatted("50s", 50 * second)
    14    assertFormatted("1m", 70 * second)
    15    assertFormatted("2m", 150 * second)
    16    assertFormatted("1h", 4000 * second)
    17  
    18    // there used to be a bug where the UI would flip from
    19    // "10.0s" to "10s", which looked weird.
    20    assertFormatted("9.9s", 10 * second - 100)
    21    assertFormatted("9.9s", 10 * second - 51)
    22    assertFormatted("10s", 10 * second - 50)
    23    assertFormatted("10s", 10 * second - 1)
    24    assertFormatted("10s", 10 * second)
    25    assertFormatted("10s", 10 * second + 1)
    26  })