Разрабатываю приложение через create-react-app. Очередная проблема с jest.
При запуске тестов выдаёт ошибку
И что самое интересное, этот возвращает функция, которая не тестируется, а просто находится в одном модуле с тестируемой
Код теста:
import {createLastOnlineDescription} from './OnlineStatus'
function twoChar(number){
if(String(number).length==1)
return `0${number}`
else
return number
}
describe("createLastOnlineDescription for header online status test",()=>{
describe('it shuld return `только что`',()=>{
test('input now',()=>{
const input = new Date()
const result = createLastOnlineDescription(input)
expect(result).toEqual('только что')
})
test('input 1 minute ago',()=>{
const input = new Date(new Date()-60000)
const result = createLastOnlineDescription(input)
expect(result).toEqual('только что')
})
test('input 2 minute ago',()=>{
const input = new Date(new Date()-120000)
const result = createLastOnlineDescription(input)
expect(result).toEqual('только что')
})
test('input 3 minute ago',()=>{
const input = new Date(new Date()-180000)
const result = createLastOnlineDescription(input)
expect(result).toEqual('только что')
})
test('input 4 minute ago',()=>{
const input = new Date(new Date()-240000)
const result = createLastOnlineDescription(input)
expect(result).toEqual('только что')
})
})
})
import React from 'react'
Код модуля:
class OnlineStatus extends React.Component{
render(){
return(
<div/>
)
}
}
export function createLastOnlineDescription(lastOnlineDatetime){
if(lastOnlineDatetime === 'online')
return 'online'
const timeDifference = new Date() - new Date(lastOnlineDatetime)
if(timeDifference<300000)
return `только что`
if (timeDifference<3600000) //Если разница во времени между текущем и установленным меньше часа
return `${timeDifference / 60000} минут назад` //Возвращаем значение в минутах
if(timeDifference<4500000) //Если больше часа, но меньше часа и пятнадцати минут
return `час назад`
if(timeDifference<7200000) //Если боьше часа пятнадцати, но меньше двух часов
return timeConverter(lastOnlineDatetime)
function timeConverter(UNIX_timestamp){
const a = new Date(UNIX_timestamp * 1000);
const months = ['января','февраля','марта','апреля','мая','июня','июля','августа','сентября','октября','ноября','декабря'];
const month = months[a.getMonth()];
const date = a.getDate();
const hour = twoChar(a.getHours());
const min = twoChar(a.getMinutes());
if (a.setHours(0,0,0,0) === (new Date()).setHours(0,0,0,0))
return `сегодня в ${hour}:${min}`;
function twoChar(number){
if(String(number).length==1)
return `0${number}`
else
return number
}
}
}