Add tests for formatters

This commit is contained in:
Deluan 2020-11-10 20:45:04 -05:00
parent 9d2426a601
commit 11012302fd
4 changed files with 46 additions and 15 deletions

View File

@ -82,6 +82,11 @@ jobs:
cd ui
npm run check-formatting
- name: npm test
run: |
cd ui
npm test
- name: npm build
run: |
cd ui

View File

@ -1,6 +1,19 @@
import React from 'react'
import PropTypes from 'prop-types'
import { formatRange } from '../utils'
export const formatRange = (record, source) => {
const nameCapitalized = source.charAt(0).toUpperCase() + source.slice(1)
const min = record[`min${nameCapitalized}`]
const max = record[`max${nameCapitalized}`]
let range = []
if (min) {
range.push(min)
}
if (max && max !== min) {
range.push(max)
}
return range.join('-')
}
export const RangeField = ({ className, record = {}, source }) => {
return <span className={className}>{formatRange(record, source)}</span>

View File

@ -10,20 +10,6 @@ export const formatBytes = (bytes, decimals = 2) => {
return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i]
}
export const formatRange = (record, source) => {
const nameCapitalized = source.charAt(0).toUpperCase() + source.slice(1)
const min = record[`min${nameCapitalized}`]
const max = record[`max${nameCapitalized}`]
let range = []
if (min) {
range.push(min)
}
if (max && max !== min) {
range.push(max)
}
return range.join('-')
}
export const formatDuration = (d) => {
const hours = Math.floor(d / 3600)
const minutes = Math.floor(d / 60) % 60

View File

@ -0,0 +1,27 @@
import React from 'react'
import ReactDOM from 'react-dom'
import { formatBytes, formatDuration } from './formatters'
describe('formatBytes', () => {
it('format bytes', () => {
expect(formatBytes(0)).toEqual('0 Bytes')
expect(formatBytes(1000)).toEqual('1000 Bytes')
expect(formatBytes(1024)).toEqual('1 KB')
expect(formatBytes(1024 * 1024)).toEqual('1 MB')
expect(formatBytes(1024 * 1024 * 1024)).toEqual('1 GB')
expect(formatBytes(1024 * 1024 * 1024 * 1024)).toEqual('1 TB')
})
})
const day = 86400
const hour = 3600
const minute = 60
describe('formatDuration', () => {
it('format seconds', () => {
expect(formatDuration(0)).toEqual('00:00')
expect(formatDuration(59)).toEqual('00:59')
expect(formatDuration(hour + minute + 1)).toEqual('01:01:01')
expect(formatDuration(2 * day + 3 * hour + 7 * minute)).toEqual('51:07:00')
})
})