replace jest with ava
This commit is contained in:
parent
27cc8b23fe
commit
0347b72305
11775 changed files with 84546 additions and 1440575 deletions
89
node_modules/concordance/lib/complexValues/date.js
generated
vendored
Normal file
89
node_modules/concordance/lib/complexValues/date.js
generated
vendored
Normal file
|
|
@ -0,0 +1,89 @@
|
|||
'use strict'
|
||||
|
||||
const dateTime = require('date-time')
|
||||
|
||||
const constants = require('../constants')
|
||||
const formatUtils = require('../formatUtils')
|
||||
const lineBuilder = require('../lineBuilder')
|
||||
const object = require('./object')
|
||||
|
||||
const SHALLOW_EQUAL = constants.SHALLOW_EQUAL
|
||||
const UNEQUAL = constants.UNEQUAL
|
||||
|
||||
function describe (props) {
|
||||
const date = props.value
|
||||
const invalid = isNaN(date.valueOf())
|
||||
return new DescribedDateValue(Object.assign({}, props, {invalid}))
|
||||
}
|
||||
exports.describe = describe
|
||||
|
||||
function deserialize (state, recursor) {
|
||||
return new DeserializedDateValue(state, recursor)
|
||||
}
|
||||
exports.deserialize = deserialize
|
||||
|
||||
const tag = Symbol('DateValue')
|
||||
exports.tag = tag
|
||||
|
||||
function formatDate (date) {
|
||||
// Always format in UTC. The local timezone shouldn't be used since it's most
|
||||
// likely different from that of CI servers.
|
||||
return dateTime({
|
||||
date,
|
||||
local: false,
|
||||
showTimeZone: true,
|
||||
showMilliseconds: true
|
||||
})
|
||||
}
|
||||
|
||||
class DateValue extends object.ObjectValue {
|
||||
constructor (props) {
|
||||
super(props)
|
||||
this.invalid = props.invalid
|
||||
}
|
||||
|
||||
compare (expected) {
|
||||
const result = super.compare(expected)
|
||||
if (result !== SHALLOW_EQUAL) return result
|
||||
|
||||
return (this.invalid && expected.invalid) || Object.is(this.value.getTime(), expected.value.getTime())
|
||||
? SHALLOW_EQUAL
|
||||
: UNEQUAL
|
||||
}
|
||||
|
||||
formatShallow (theme, indent) {
|
||||
const string = formatUtils.formatCtorAndStringTag(theme, this) + ' ' +
|
||||
(this.invalid ? theme.date.invalid : formatUtils.wrap(theme.date.value, formatDate(this.value))) + ' ' +
|
||||
theme.object.openBracket
|
||||
|
||||
return super.formatShallow(theme, indent).customize({
|
||||
finalize (innerLines) {
|
||||
return innerLines.isEmpty
|
||||
? lineBuilder.single(string + theme.object.closeBracket)
|
||||
: lineBuilder.first(string)
|
||||
.concat(innerLines.withFirstPrefixed(indent.increase()).stripFlags())
|
||||
.append(lineBuilder.last(indent + theme.object.closeBracket))
|
||||
},
|
||||
|
||||
maxDepth () {
|
||||
return lineBuilder.single(string + ' ' + theme.maxDepth + ' ' + theme.object.closeBracket)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
serialize () {
|
||||
const iso = this.invalid ? null : this.value.toISOString()
|
||||
return [this.invalid, iso, super.serialize()]
|
||||
}
|
||||
}
|
||||
Object.defineProperty(DateValue.prototype, 'tag', { value: tag })
|
||||
|
||||
const DescribedDateValue = object.DescribedMixin(DateValue)
|
||||
|
||||
class DeserializedDateValue extends object.DeserializedMixin(DateValue) {
|
||||
constructor (state, recursor) {
|
||||
super(state[2], recursor)
|
||||
this.invalid = state[0]
|
||||
this.value = new Date(this.invalid ? NaN : state[1])
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue