From a279eab510caa71aa5787f6da59a4f218bb21157 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?null=E4=BB=94?= <308241863@qq.com> Date: Wed, 7 Jul 2021 17:37:56 +0800 Subject: [PATCH] test: test for v3 useCssModule (#750) Co-authored-by: webfansplz <> --- test/v3/runtime-core/useCssModule.spec.ts | 46 +++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 test/v3/runtime-core/useCssModule.spec.ts diff --git a/test/v3/runtime-core/useCssModule.spec.ts b/test/v3/runtime-core/useCssModule.spec.ts new file mode 100644 index 00000000..a88bf3d8 --- /dev/null +++ b/test/v3/runtime-core/useCssModule.spec.ts @@ -0,0 +1,46 @@ +import { useCssModule, createApp } from '../../../src' +import { mockWarn } from '../../helpers' +import { proxy } from '../../../src/utils' + +function injectStyles(this: any, style: object) { + proxy(this, '$style', { + get: function () { + return style + }, + }) +} + +describe('api: useCssModule', () => { + mockWarn(true) + + function mountWithModule(modules: object) { + let res + const Comp = { + beforeCreate() { + injectStyles.call(this, modules) + }, + setup() { + res = useCssModule() + }, + } + const root = document.createElement('div') + createApp(Comp).mount(root) + return res + } + + it('basic usage', () => { + const modules = { + $style: { + red: 'red', + }, + } + expect(mountWithModule(modules.$style)).toMatchObject(modules.$style) + }) + + it('warn out of setup usage', () => { + useCssModule() + expect( + '[Vue warn]: useCssModule must be called inside setup()' + ).toHaveBeenWarned() + }) +})