mirror of
https://github.com/ianstormtaylor/slate.git
synced 2025-08-22 06:53:25 +02:00
Refactor tests (#2021)
* add slate-dev-test-utils, refactor tests to use fixtures util * cleanup top-level test files * tweaks
This commit is contained in:
@@ -1,56 +1,29 @@
|
||||
import assert from 'assert'
|
||||
import fs from 'fs'
|
||||
import { Value, KeyUtils } from 'slate'
|
||||
import { basename, extname, resolve } from 'path'
|
||||
|
||||
beforeEach(KeyUtils.resetGenerator)
|
||||
import { Value } from 'slate'
|
||||
import { fixtures } from 'slate-dev-test-utils'
|
||||
|
||||
describe('slate-hyperscript', () => {
|
||||
const dir = resolve(__dirname, './fixtures')
|
||||
const tests = fs
|
||||
.readdirSync(dir)
|
||||
.filter(t => t[0] != '.')
|
||||
.map(t => basename(t, extname(t)))
|
||||
fixtures(__dirname, 'fixtures', ({ module }) => {
|
||||
const { input, output, options } = module
|
||||
const actual = input.toJSON(options)
|
||||
const expected = Value.isValue(output) ? output.toJSON() : output
|
||||
assert.deepEqual(actual, expected)
|
||||
})
|
||||
|
||||
for (const test of tests) {
|
||||
it(test, async () => {
|
||||
const module = require(resolve(dir, test))
|
||||
const { input, output, options } = module
|
||||
const actual = input.toJSON(options)
|
||||
const expected = Value.isValue(output) ? output.toJSON() : output
|
||||
assert.deepEqual(actual, expected)
|
||||
})
|
||||
}
|
||||
fixtures.skip(__dirname, 'decorations', ({ module }) => {
|
||||
const { input, output, expectDecorations } = module
|
||||
const actual = input.toJSON()
|
||||
const expected = Value.isValue(output) ? output.toJSON() : output
|
||||
assert.deepEqual(actual, expected)
|
||||
|
||||
describe.skip('decorations', () => {
|
||||
const decDir = resolve(__dirname, './decorations')
|
||||
const decTests = fs
|
||||
.readdirSync(decDir)
|
||||
.filter(t => t[0] != '.')
|
||||
.map(t => basename(t, extname(t)))
|
||||
|
||||
for (const test of decTests) {
|
||||
it(test, async () => {
|
||||
const module = require(resolve(decDir, test))
|
||||
const { input, output, expectDecorations } = module
|
||||
|
||||
// ensure deserialization was okay
|
||||
const actual = input.toJSON()
|
||||
const expected = Value.isValue(output) ? output.toJSON() : output
|
||||
assert.deepEqual(actual, expected)
|
||||
|
||||
// ensure expected properties of decorations match
|
||||
// note: they are expected to match order in test result
|
||||
expectDecorations.forEach((decoration, i) => {
|
||||
Object.keys(decoration).forEach(prop => {
|
||||
assert.deepEqual(
|
||||
decoration[prop],
|
||||
input.decorations.toJS()[i][prop],
|
||||
`decoration ${i} had incorrect prop: ${prop}`
|
||||
)
|
||||
})
|
||||
})
|
||||
expectDecorations.forEach((decoration, i) => {
|
||||
Object.keys(decoration).forEach(prop => {
|
||||
assert.deepEqual(
|
||||
decoration[prop],
|
||||
input.decorations.toJS()[i][prop],
|
||||
`decoration ${i} had incorrect prop: ${prop}`
|
||||
)
|
||||
})
|
||||
}
|
||||
})
|
||||
})
|
||||
})
|
||||
|
Reference in New Issue
Block a user