All Downloads are FREE. Search and download functionalities are using the official Maven repository.

__tests__.period.test.js Maven / Gradle / Ivy

import { toEnabledLocale } from "contexts/utils/localization-utils";
import {
  YEARS, 
  MONTHS, 
  WEEKS, 
  DAYS,
  HOURS,
  MINUTES,
  SECONDS, 
  MILLIS, 
  periodToIso,
  isoToPeriod 
} from "utils/period";


test('Convert period to ISO 8601', () => {
  expect(
    periodToIso(
      {
        [YEARS]: 1,
        [MONTHS]: 2,
        [WEEKS]: 3,
        [DAYS]: 4,
        [HOURS]: 5,
        [MINUTES]: 6,
        [SECONDS]: 7,
        [MILLIS]: 8      
      }
    )
  ).toEqual("P1Y2M3W4DT5H6M7.008S")

  expect(
    periodToIso(
      {
        [HOURS]: 5,
        [MINUTES]: 6,
        [SECONDS]: 7,
        [MILLIS]: 8      
      }
    )
  ).toEqual("PT5H6M7.008S")

  expect(
    periodToIso(
      {
        [YEARS]: 1,
        [MONTHS]: 2,
        [WEEKS]: 3,
        [DAYS]: 4,
      }
    )
  ).toEqual("P1Y2M3W4D")

  expect(
    periodToIso(
      {
        [SECONDS]: 7,
        [MILLIS]: 8     
      }
    )
  ).toEqual("PT7.008S")

  expect(
    periodToIso(
      {
        [SECONDS]: 7,
        [MILLIS]: 8000     
      }
    )
  ).toEqual("PT15S")

  expect(
    periodToIso(
      {
        [SECONDS]: 7,
      }
    )
  ).toEqual("PT7S")

  expect(
    periodToIso(
      {
        [MILLIS]: 8     
      }
    )
  ).toEqual("PT0.008S")

  expect(
    periodToIso(
      {}
    )
  ).toEqual(null)


})


test('Convert ISO 8601 to a period object', () => {
  expect(isoToPeriod("P1Y2M3W4DT5H6M7.008S"))
    .toEqual(
      {
        [YEARS]: 1,
        [MONTHS]: 2,
        [WEEKS]: 3,
        [DAYS]: 4,
        [HOURS]: 5,
        [MINUTES]: 6,
        [SECONDS]: 7,
        [MILLIS]: 8      
      }
    )

  expect(isoToPeriod("PT5H6M7.008S"))
  .toEqual(
      {
        [HOURS]: 5,
        [MINUTES]: 6,
        [SECONDS]: 7,
        [MILLIS]: 8      
      }
    )

  expect(isoToPeriod("P1Y2M3W4D"))
    .toEqual(
      {
        [YEARS]: 1,
        [MONTHS]: 2,
        [WEEKS]: 3,
        [DAYS]: 4,
      }
    )

  expect(isoToPeriod("PT7.008S"))
    .toEqual(
      {
        [SECONDS]: 7,
        [MILLIS]: 8     
      }
    )

  expect(isoToPeriod("PT15S"))
  .toEqual(
      {
        [SECONDS]: 15,
      }
    )

  expect(isoToPeriod("PT7S"))
    .toEqual(
      {
        [SECONDS]: 7,
      }
    )

  expect(isoToPeriod("PT0.008S"))
    .toEqual(
      {
        [SECONDS]: 0,
        [MILLIS]: 8     
      }
    )

  expect(isoToPeriod("PT.008S"))
    .toEqual(
      {
        [MILLIS]: 8     
      }
    )

  expect(isoToPeriod(null))
    .toEqual(null)
  
    expect(isoToPeriod(undefined))
    .toEqual(null)
     
})




© 2015 - 2024 Weber Informatics LLC | Privacy Policy