From: Evan You Date: Wed, 25 Sep 2019 03:01:57 +0000 (-0400) Subject: test: move source map test to compile.spec.ts X-Git-Tag: v3.0.0-alpha.0~698 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=61be769ce6545ead63dafc3d630d10c767926368;p=thirdparty%2Fvuejs%2Fcore.git test: move source map test to compile.spec.ts --- diff --git a/packages/compiler-core/__tests__/codegen.spec.ts b/packages/compiler-core/__tests__/codegen.spec.ts index 43d5d0b43c..42c73c2b98 100644 --- a/packages/compiler-core/__tests__/codegen.spec.ts +++ b/packages/compiler-core/__tests__/codegen.spec.ts @@ -1,5 +1,4 @@ import { - parse, generate, NodeTypes, RootNode, @@ -13,7 +12,6 @@ import { createArrayExpression, ElementNode } from '../src' -import { SourceMapConsumer, RawSourceMap } from 'source-map' import { CREATE_VNODE, COMMENT, TO_STRING } from '../src/runtimeConstants' const mockLoc: SourceLocation = { @@ -452,36 +450,4 @@ describe('compiler: codegen', () => { ])`) expect(code).toMatchSnapshot() }) - - test('basic source map support', async () => { - const source = `hello {{ world }}` - const ast = parse(source) - const { code, map } = generate(ast, { - sourceMap: true, - filename: `foo.vue` - }) - expect(code).toMatch( - `return function render() { - with (this) { - return [ - "hello ", - toString(world) - ] - } -}` - ) - - expect(map!.sources).toEqual([`foo.vue`]) - expect(map!.sourcesContent).toEqual([source]) - - const consumer = await new SourceMapConsumer(map as RawSourceMap) - const pos = consumer.originalPositionFor({ - line: 5, - column: 15 - }) - expect(pos).toMatchObject({ - line: 1, - column: 6 - }) - }) }) diff --git a/packages/compiler-core/__tests__/compile.spec.ts b/packages/compiler-core/__tests__/compile.spec.ts index b8c736c095..ad28e5653f 100644 --- a/packages/compiler-core/__tests__/compile.spec.ts +++ b/packages/compiler-core/__tests__/compile.spec.ts @@ -1,2 +1,36 @@ +import { compile } from '../src' +import { SourceMapConsumer, RawSourceMap } from 'source-map' + // Integration tests for parser + transform + codegen -test.todo('compile') +test('basic source map support', async () => { + const source = `hello {{ world }}` + const { code, map } = compile(source, { + sourceMap: true, + filename: `foo.vue` + }) + expect(code).toMatch( + `const { toString } = Vue + +return function render() { + with (this) { + return [ + "hello ", + toString(world) + ] + } +}` + ) + + expect(map!.sources).toEqual([`foo.vue`]) + expect(map!.sourcesContent).toEqual([source]) + + const consumer = await new SourceMapConsumer(map as RawSourceMap) + const pos = consumer.originalPositionFor({ + line: 7, + column: 16 + }) + expect(pos).toMatchObject({ + line: 1, + column: 6 + }) +})