diff --git a/packages/server-test-utils/package.json b/packages/server-test-utils/package.json index 09bfb28c5..b3fa75616 100644 --- a/packages/server-test-utils/package.json +++ b/packages/server-test-utils/package.json @@ -24,7 +24,8 @@ }, "homepage": "https://github.com/vuejs/vue-test-utils#readme", "dependencies": { - "cheerio": "^1.0.0-rc.2" + "cheerio": "^1.0.0-rc.2", + "@types/cheerio": "^0.22.10" }, "devDependencies": { "chalk": "^2.1.0", diff --git a/packages/server-test-utils/types/index.d.ts b/packages/server-test-utils/types/index.d.ts index 01e4daebe..936cddfa1 100644 --- a/packages/server-test-utils/types/index.d.ts +++ b/packages/server-test-utils/types/index.d.ts @@ -54,9 +54,9 @@ interface VueTestUtilsConfigOptions { export declare let config: VueTestUtilsConfigOptions -export declare function render (component: VueClass, options?: ThisTypedMountOptions): string -export declare function render (component: ComponentOptions, options?: ThisTypedMountOptions): string -export declare function render (component: FunctionalComponentOptions, options?: MountOptions): string +export declare function render (component: VueClass, options?: ThisTypedMountOptions): Cheerio +export declare function render (component: ComponentOptions, options?: ThisTypedMountOptions): Cheerio +export declare function render (component: FunctionalComponentOptions, options?: MountOptions): Cheerio export declare function renderToString (component: VueClass, options?: ThisTypedMountOptions): string export declare function renderToString (component: ComponentOptions, options?: ThisTypedMountOptions): string diff --git a/packages/server-test-utils/types/test/renderToString.ts b/packages/server-test-utils/types/test/renderToString.ts index 70be7d520..a4259b1e2 100644 --- a/packages/server-test-utils/types/test/renderToString.ts +++ b/packages/server-test-utils/types/test/renderToString.ts @@ -4,7 +4,7 @@ import { normalOptions, functionalOptions, Normal, ClassComponent } from './reso const store = new Vuex.Store({}) -render( +const renderResult: Cheerio = render( { template: '

foo

' }, diff --git a/test/specs/render.spec.js b/test/specs/render.spec.js index 419682db4..8f13ce36c 100644 --- a/test/specs/render.spec.js +++ b/test/specs/render.spec.js @@ -1,4 +1,5 @@ import { render } from '~vue/server-test-utils' +import Cheerio from 'cheerio' describe('render', () => { it('returns a cheerio wrapper of the rendered component', () => { @@ -6,6 +7,7 @@ describe('render', () => { template: '

Test

' } const wrapper = render(TestComponent) + expect(wrapper).to.be.an.instanceof(Cheerio) expect(wrapper.find('h2').text()).to.equal('Test') expect(wrapper.find('p').length).to.equal(2) }) diff --git a/yarn.lock b/yarn.lock index 31714ddde..6bf77824e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -767,6 +767,11 @@ dependencies: "@types/estree" "*" +"@types/cheerio@^0.22.10": + version "0.22.10" + resolved "https://registry.yarnpkg.com/@types/cheerio/-/cheerio-0.22.10.tgz#780d552467824be4a241b29510a7873a7432c4a6" + integrity sha512-fOM/Jhv51iyugY7KOBZz2ThfT1gwvsGCfWxpLpZDgkGjpEO4Le9cld07OdskikLjDUQJ43dzDaVRSFwQlpdqVg== + "@types/estree@*", "@types/estree@0.0.38": version "0.0.38" resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.38.tgz#c1be40aa933723c608820a99a373a16d215a1ca2"