diff --git a/packages/runtime-core/__tests__/apiInject.spec.ts b/packages/runtime-core/__tests__/apiInject.spec.ts index b8c7bf62..bcb6110c 100644 --- a/packages/runtime-core/__tests__/apiInject.spec.ts +++ b/packages/runtime-core/__tests__/apiInject.spec.ts @@ -1 +1,3 @@ +// reference: https://vue-composition-api-rfc.netlify.com/api.html#provide-inject + describe('api: provide/inject', () => {}) diff --git a/packages/runtime-core/__tests__/apiLifecycle.spec.ts b/packages/runtime-core/__tests__/apiLifecycle.spec.ts index bd1ccf5a..40b2e58d 100644 --- a/packages/runtime-core/__tests__/apiLifecycle.spec.ts +++ b/packages/runtime-core/__tests__/apiLifecycle.spec.ts @@ -1 +1,3 @@ +// reference: https://vue-composition-api-rfc.netlify.com/api.html#lifecycle-hooks + describe('api: lifecycle hooks', () => {}) diff --git a/packages/runtime-core/__tests__/apiSetupContext.spec.ts b/packages/runtime-core/__tests__/apiSetupContext.spec.ts new file mode 100644 index 00000000..a27755a6 --- /dev/null +++ b/packages/runtime-core/__tests__/apiSetupContext.spec.ts @@ -0,0 +1,3 @@ +// reference: https://vue-composition-api-rfc.netlify.com/api.html#setup + +describe('api: setup context', () => {}) diff --git a/packages/runtime-core/__tests__/apiWatch.spec.ts b/packages/runtime-core/__tests__/apiWatch.spec.ts index 0c8316d9..46c3bba1 100644 --- a/packages/runtime-core/__tests__/apiWatch.spec.ts +++ b/packages/runtime-core/__tests__/apiWatch.spec.ts @@ -1 +1,3 @@ +// reference: https://vue-composition-api-rfc.netlify.com/api.html#watch + describe('api: watch', () => {}) diff --git a/packages/runtime-core/__tests__/vdomChildren.spec.ts b/packages/runtime-core/__tests__/vdomChildren.spec.ts index 84ec5614..e16e62f9 100644 --- a/packages/runtime-core/__tests__/vdomChildren.spec.ts +++ b/packages/runtime-core/__tests__/vdomChildren.spec.ts @@ -1,3 +1,5 @@ +// reference: https://github.com/vuejs/vue/blob/dev/test/unit/modules/vdom/patch/children.spec.js + describe('vdom: unkeyed children', () => { test.todo('append') diff --git a/packages/runtime-core/__tests__/vdomFragment.spec.ts b/packages/runtime-core/__tests__/vdomFragment.spec.ts index 72f948f4..f9732864 100644 --- a/packages/runtime-core/__tests__/vdomFragment.spec.ts +++ b/packages/runtime-core/__tests__/vdomFragment.spec.ts @@ -1,199 +1,201 @@ -import { - createVNode as h, - render, - nodeOps, - NodeTypes, - TestElement, - Fragment, - reactive, - serialize, - nextTick, - resetOps, - dumpOps, - NodeOpTypes -} from '@vue/runtime-test' +// These tests are outdated. -describe('vdom: fragment', () => { - it('should allow returning multiple component root nodes', async () => { - class App extends Component { - render() { - return [h('div', 'one'), 'two'] - } - } - const root = nodeOps.createElement('div') - await render(h(App), root) - expect(serialize(root)).toBe(`
one
two
`) - expect(root.children.length).toBe(2) - expect(root.children[0]).toMatchObject({ - type: NodeTypes.ELEMENT, - tag: 'div' - }) - expect((root.children[0] as TestElement).children[0]).toMatchObject({ - type: NodeTypes.TEXT, - text: 'one' - }) - expect(root.children[1]).toMatchObject({ - type: NodeTypes.TEXT, - text: 'two' - }) - }) +// import { +// createVNode as h, +// render, +// nodeOps, +// NodeTypes, +// TestElement, +// Fragment, +// reactive, +// serialize, +// nextTick, +// resetOps, +// dumpOps, +// NodeOpTypes +// } from '@vue/runtime-test' - it('should be able to explicitly create fragments', async () => { - class App extends Component { - render() { - return h('div', [h(Fragment, [h('div', 'one'), 'two'])]) - } - } - const root = nodeOps.createElement('div') - await render(h(App), root) - const parent = root.children[0] as TestElement - expect(serialize(parent)).toBe(`
one
two
`) - }) +// describe('vdom: fragment', () => { +// it('should allow returning multiple component root nodes', async () => { +// class App extends Component { +// render() { +// return [h('div', 'one'), 'two'] +// } +// } +// const root = nodeOps.createElement('div') +// await render(h(App), root) +// expect(serialize(root)).toBe(`
one
two
`) +// expect(root.children.length).toBe(2) +// expect(root.children[0]).toMatchObject({ +// type: NodeTypes.ELEMENT, +// tag: 'div' +// }) +// expect((root.children[0] as TestElement).children[0]).toMatchObject({ +// type: NodeTypes.TEXT, +// text: 'one' +// }) +// expect(root.children[1]).toMatchObject({ +// type: NodeTypes.TEXT, +// text: 'two' +// }) +// }) - it('should be able to patch fragment children (unkeyed)', async () => { - const state = observable({ ok: true }) - class App extends Component { - render() { - return state.ok - ? createFragment( - [h('div', 'one'), createTextVNode('two')], - ChildrenFlags.NONE_KEYED_VNODES - ) - : createFragment( - [h('div', 'foo'), createTextVNode('bar'), createTextVNode('baz')], - ChildrenFlags.NONE_KEYED_VNODES - ) - } - } - const root = nodeOps.createElement('div') - await render(h(App), root) +// it('should be able to explicitly create fragments', async () => { +// class App extends Component { +// render() { +// return h('div', [h(Fragment, [h('div', 'one'), 'two'])]) +// } +// } +// const root = nodeOps.createElement('div') +// await render(h(App), root) +// const parent = root.children[0] as TestElement +// expect(serialize(parent)).toBe(`
one
two
`) +// }) - expect(serialize(root)).toBe(`
one
two
`) +// it('should be able to patch fragment children (unkeyed)', async () => { +// const state = observable({ ok: true }) +// class App extends Component { +// render() { +// return state.ok +// ? createFragment( +// [h('div', 'one'), createTextVNode('two')], +// ChildrenFlags.NONE_KEYED_VNODES +// ) +// : createFragment( +// [h('div', 'foo'), createTextVNode('bar'), createTextVNode('baz')], +// ChildrenFlags.NONE_KEYED_VNODES +// ) +// } +// } +// const root = nodeOps.createElement('div') +// await render(h(App), root) - state.ok = false - await nextTick() - expect(serialize(root)).toBe(`
foo
barbaz
`) - }) +// expect(serialize(root)).toBe(`
one
two
`) - it('should be able to patch fragment children (implicitly keyed)', async () => { - const state = observable({ ok: true }) - class App extends Component { - render() { - return state.ok - ? [h('div', 'one'), 'two'] - : [h('pre', 'foo'), 'bar', 'baz'] - } - } - const root = nodeOps.createElement('div') - await await render(h(App), root) +// state.ok = false +// await nextTick() +// expect(serialize(root)).toBe(`
foo
barbaz
`) +// }) - expect(serialize(root)).toBe(`
one
two
`) +// it('should be able to patch fragment children (implicitly keyed)', async () => { +// const state = observable({ ok: true }) +// class App extends Component { +// render() { +// return state.ok +// ? [h('div', 'one'), 'two'] +// : [h('pre', 'foo'), 'bar', 'baz'] +// } +// } +// const root = nodeOps.createElement('div') +// await await render(h(App), root) - state.ok = false - await nextTick() - expect(serialize(root)).toBe(`
foo
barbaz
`) - }) +// expect(serialize(root)).toBe(`
one
two
`) - it('should be able to patch fragment children (explcitly keyed)', async () => { - const state = observable({ ok: true }) - class App extends Component { - render() { - return state.ok - ? [h('div', { key: 1 }, 'one'), h('div', { key: 2 }, 'two')] - : [h('div', { key: 2 }, 'two'), h('div', { key: 1 }, 'one')] - } - } - const root = nodeOps.createElement('div') - await render(h(App), root) +// state.ok = false +// await nextTick() +// expect(serialize(root)).toBe(`
foo
barbaz
`) +// }) - expect(serialize(root)).toBe(`
one
two
`) +// it('should be able to patch fragment children (explcitly keyed)', async () => { +// const state = observable({ ok: true }) +// class App extends Component { +// render() { +// return state.ok +// ? [h('div', { key: 1 }, 'one'), h('div', { key: 2 }, 'two')] +// : [h('div', { key: 2 }, 'two'), h('div', { key: 1 }, 'one')] +// } +// } +// const root = nodeOps.createElement('div') +// await render(h(App), root) - resetOps() - state.ok = false - await nextTick() - expect(serialize(root)).toBe(`
two
one
`) - const ops = dumpOps() - // should be moving nodes instead of re-creating them - expect(ops.some(op => op.type === NodeOpTypes.CREATE)).toBe(false) - }) +// expect(serialize(root)).toBe(`
one
two
`) - it('should be able to move fragment', async () => { - const state = observable({ ok: true }) - class App extends Component { - render() { - return state.ok - ? h('div', [ - h('div', { key: 1 }, 'outer'), - h(Fragment, { key: 2 }, [ - h('div', { key: 1 }, 'one'), - h('div', { key: 2 }, 'two') - ]) - ]) - : h('div', [ - h(Fragment, { key: 2 }, [ - h('div', { key: 2 }, 'two'), - h('div', { key: 1 }, 'one') - ]), - h('div', { key: 1 }, 'outer') - ]) - } - } - const root = nodeOps.createElement('div') - await render(h(App), root) - const parent = root.children[0] as TestElement +// resetOps() +// state.ok = false +// await nextTick() +// expect(serialize(root)).toBe(`
two
one
`) +// const ops = dumpOps() +// // should be moving nodes instead of re-creating them +// expect(ops.some(op => op.type === NodeOpTypes.CREATE)).toBe(false) +// }) - expect(serialize(parent)).toBe( - `
outer
one
two
` - ) +// it('should be able to move fragment', async () => { +// const state = observable({ ok: true }) +// class App extends Component { +// render() { +// return state.ok +// ? h('div', [ +// h('div', { key: 1 }, 'outer'), +// h(Fragment, { key: 2 }, [ +// h('div', { key: 1 }, 'one'), +// h('div', { key: 2 }, 'two') +// ]) +// ]) +// : h('div', [ +// h(Fragment, { key: 2 }, [ +// h('div', { key: 2 }, 'two'), +// h('div', { key: 1 }, 'one') +// ]), +// h('div', { key: 1 }, 'outer') +// ]) +// } +// } +// const root = nodeOps.createElement('div') +// await render(h(App), root) +// const parent = root.children[0] as TestElement - resetOps() - state.ok = false - await nextTick() - expect(serialize(parent)).toBe( - `
two
one
outer
` - ) - const ops = dumpOps() - // should be moving nodes instead of re-creating them - expect(ops.some(op => op.type === NodeOpTypes.CREATE)).toBe(false) - }) +// expect(serialize(parent)).toBe( +// `
outer
one
two
` +// ) - it('should be able to handle nested fragments', async () => { - const state = observable({ ok: true }) - class App extends Component { - render() { - return state.ok - ? [ - h('div', { key: 1 }, 'outer'), - h(Fragment, { key: 2 }, [ - h('div', { key: 1 }, 'one'), - h('div', { key: 2 }, 'two') - ]) - ] - : [ - h(Fragment, { key: 2 }, [ - h('div', { key: 2 }, 'two'), - h('div', { key: 1 }, 'one') - ]), - h('div', { key: 1 }, 'outer') - ] - } - } +// resetOps() +// state.ok = false +// await nextTick() +// expect(serialize(parent)).toBe( +// `
two
one
outer
` +// ) +// const ops = dumpOps() +// // should be moving nodes instead of re-creating them +// expect(ops.some(op => op.type === NodeOpTypes.CREATE)).toBe(false) +// }) - const root = nodeOps.createElement('div') - await render(h(App), root) +// it('should be able to handle nested fragments', async () => { +// const state = observable({ ok: true }) +// class App extends Component { +// render() { +// return state.ok +// ? [ +// h('div', { key: 1 }, 'outer'), +// h(Fragment, { key: 2 }, [ +// h('div', { key: 1 }, 'one'), +// h('div', { key: 2 }, 'two') +// ]) +// ] +// : [ +// h(Fragment, { key: 2 }, [ +// h('div', { key: 2 }, 'two'), +// h('div', { key: 1 }, 'one') +// ]), +// h('div', { key: 1 }, 'outer') +// ] +// } +// } - expect(serialize(root)).toBe( - `
outer
one
two
` - ) +// const root = nodeOps.createElement('div') +// await render(h(App), root) - resetOps() - state.ok = false - await nextTick() - expect(serialize(root)).toBe( - `
two
one
outer
` - ) - const ops = dumpOps() - // should be moving nodes instead of re-creating them - expect(ops.some(op => op.type === NodeOpTypes.CREATE)).toBe(false) - }) -}) +// expect(serialize(root)).toBe( +// `
outer
one
two
` +// ) + +// resetOps() +// state.ok = false +// await nextTick() +// expect(serialize(root)).toBe( +// `
two
one
outer
` +// ) +// const ops = dumpOps() +// // should be moving nodes instead of re-creating them +// expect(ops.some(op => op.type === NodeOpTypes.CREATE)).toBe(false) +// }) +// })