From e35908b805d2cf89a915141bdb392cfa94f28fdf Mon Sep 17 00:00:00 2001 From: chilingling <26962197+chilingling@users.noreply.github.com> Date: Mon, 23 Mar 2026 09:50:17 +0800 Subject: [PATCH] fix: update gen code unit test (#1790) --- packages/utils/src/fs/index.ts | 4 +- .../expected/appdemo01/package.json | 8 +-- .../expected/appdemo01/src/App.vue | 2 +- .../expected/appdemo01/src/http/axios.js | 58 ------------------- .../expected/appdemo01/src/http/index.js | 4 +- .../expected/appdemo01/src/i18n/index.js | 4 +- .../appdemo01/src/lowcodeConfig/dataSource.js | 8 +-- .../appdemo01/src/lowcodeConfig/lowcode.js | 8 +-- .../appdemo01/src/lowcodeConfig/store.js | 2 +- .../expected/appdemo01/src/main.js | 16 +---- .../expected/appdemo01/vite.config.js | 2 +- .../generator/expected/appdemo01/package.json | 2 +- .../generator/expected/appdemo01/src/App.vue | 2 +- .../expected/appdemo01/src/http/axios.js | 58 ------------------- .../expected/appdemo01/src/http/index.js | 4 +- .../expected/appdemo01/src/i18n/index.js | 4 +- .../expected/appdemo01/src/i18n/locale.js | 4 +- .../appdemo01/src/lowcodeConfig/dataSource.js | 8 +-- .../appdemo01/src/lowcodeConfig/lowcode.js | 8 +-- .../appdemo01/src/lowcodeConfig/store.js | 2 +- .../generator/expected/appdemo01/src/main.js | 16 +---- .../expected/appdemo01/vite.config.js | 2 +- 22 files changed, 44 insertions(+), 182 deletions(-) diff --git a/packages/utils/src/fs/index.ts b/packages/utils/src/fs/index.ts index cd53801d..df909168 100644 --- a/packages/utils/src/fs/index.ts +++ b/packages/utils/src/fs/index.ts @@ -16,7 +16,9 @@ import { createZip, writeZip } from './fszip' // 支持file system api的条件:存在这个方法 && 不处于iframe中 export const isSupportFileSystemAccess = - Object.prototype.hasOwnProperty.call(window, 'showDirectoryPicker') && window.self === window.top + typeof window !== 'undefined' && + Object.prototype.hasOwnProperty.call(window, 'showDirectoryPicker') && + window.self === window.top /** * 获取用户选择并授权的文件夹根路径 diff --git a/packages/vue-generator/test/testcases/element-plus-case/expected/appdemo01/package.json b/packages/vue-generator/test/testcases/element-plus-case/expected/appdemo01/package.json index 0ecbe3f5..b12d9688 100644 --- a/packages/vue-generator/test/testcases/element-plus-case/expected/appdemo01/package.json +++ b/packages/vue-generator/test/testcases/element-plus-case/expected/appdemo01/package.json @@ -10,10 +10,10 @@ "main": "dist/index.js", "module": "dist/index.js", "dependencies": { - "@opentiny/tiny-engine-i18n-host": "^1.0.0", - "@opentiny/vue": "^3.10.0", - "@opentiny/vue-icon": "^3.10.0", - "axios": "^0.21.1", + "@opentiny/tiny-engine-i18n-host": "^2.8.0", + "@opentiny/vue": "^3.20.0", + "@opentiny/vue-icon": "^3.20.0", + "axios": "^0.30.1", "axios-mock-adapter": "^1.19.0", "vue": "^3.3.9", "vue-i18n": "^9.2.0-beta.3", diff --git a/packages/vue-generator/test/testcases/element-plus-case/expected/appdemo01/src/App.vue b/packages/vue-generator/test/testcases/element-plus-case/expected/appdemo01/src/App.vue index 72b6032d..6b5c19ba 100644 --- a/packages/vue-generator/test/testcases/element-plus-case/expected/appdemo01/src/App.vue +++ b/packages/vue-generator/test/testcases/element-plus-case/expected/appdemo01/src/App.vue @@ -5,7 +5,7 @@ diff --git a/packages/vue-generator/test/testcases/element-plus-case/expected/appdemo01/src/http/axios.js b/packages/vue-generator/test/testcases/element-plus-case/expected/appdemo01/src/http/axios.js index 3654c619..a7541116 100644 --- a/packages/vue-generator/test/testcases/element-plus-case/expected/appdemo01/src/http/axios.js +++ b/packages/vue-generator/test/testcases/element-plus-case/expected/appdemo01/src/http/axios.js @@ -11,49 +11,10 @@ */ import axios from 'axios' -import MockAdapter from 'axios-mock-adapter' export default (config) => { const instance = axios.create(config) const defaults = {} - let mock - - if (typeof MockAdapter.prototype.proxy === 'undefined') { - MockAdapter.prototype.proxy = function ({ url, config = {}, proxy, response, handleData } = {}) { - // eslint-disable-next-line @typescript-eslint/no-this-alias - let stream = this - const request = (proxy, any) => { - return (setting) => { - return new Promise((resolve) => { - config.responseType = 'json' - axios - .get(any ? proxy + setting.url + '.json' : proxy, config) - .then(({ data }) => { - if (typeof handleData === 'function') { - data = handleData.call(null, data, setting) - } - resolve([200, data]) - }) - .catch((error) => { - resolve([error.response.status, error.response.data]) - }) - }) - } - } - - if (url === '*' && proxy && typeof proxy === 'string') { - stream = proxy === '*' ? this.onAny().passThrough() : this.onAny().reply(request(proxy, true)) - } else { - if (proxy && typeof proxy === 'string') { - stream = this.onAny(url).reply(request(proxy)) - } else if (typeof response === 'function') { - stream = this.onAny(url).reply(response) - } - } - - return stream - } - } return { request(config) { @@ -115,25 +76,6 @@ export default (config) => { } } }, - mock(config) { - if (!mock) { - mock = new MockAdapter(instance) - } - - if (Array.isArray(config)) { - config.forEach((item) => { - mock.proxy(item) - }) - } - - return mock - }, - disableMock() { - if (mock) { - mock.restore() - } - mock = undefined - }, isMock() { return typeof mock !== 'undefined' }, diff --git a/packages/vue-generator/test/testcases/element-plus-case/expected/appdemo01/src/http/index.js b/packages/vue-generator/test/testcases/element-plus-case/expected/appdemo01/src/http/index.js index b0a08546..72735de3 100644 --- a/packages/vue-generator/test/testcases/element-plus-case/expected/appdemo01/src/http/index.js +++ b/packages/vue-generator/test/testcases/element-plus-case/expected/appdemo01/src/http/index.js @@ -10,8 +10,8 @@ * */ -import axios from './axios' -import config from './config' +import axios from '@/http/axios.js' +import config from '@/http/config.js' export default (dataHandler) => { const http = axios(config) diff --git a/packages/vue-generator/test/testcases/element-plus-case/expected/appdemo01/src/i18n/index.js b/packages/vue-generator/test/testcases/element-plus-case/expected/appdemo01/src/i18n/index.js index 043eac53..36df3ed6 100644 --- a/packages/vue-generator/test/testcases/element-plus-case/expected/appdemo01/src/i18n/index.js +++ b/packages/vue-generator/test/testcases/element-plus-case/expected/appdemo01/src/i18n/index.js @@ -1,6 +1,6 @@ import i18n from '@opentiny/tiny-engine-i18n-host' -import lowcode from '../lowcodeConfig/lowcode' -import locale from './locale.js' +import lowcode from '@/lowcodeConfig/lowcode.js' +import locale from '@/i18n/locale.js' i18n.lowcode = lowcode diff --git a/packages/vue-generator/test/testcases/element-plus-case/expected/appdemo01/src/lowcodeConfig/dataSource.js b/packages/vue-generator/test/testcases/element-plus-case/expected/appdemo01/src/lowcodeConfig/dataSource.js index 5ac14973..1b54f910 100644 --- a/packages/vue-generator/test/testcases/element-plus-case/expected/appdemo01/src/lowcodeConfig/dataSource.js +++ b/packages/vue-generator/test/testcases/element-plus-case/expected/appdemo01/src/lowcodeConfig/dataSource.js @@ -10,8 +10,8 @@ * */ -import useHttp from '../http' -import dataSources from './dataSource.json' +import useHttp from '@/http/index.js' +import dataSources from '@/lowcodeConfig/dataSource.json' const dataSourceMap = {} @@ -27,7 +27,7 @@ const createFn = (fnContent) => { const globalDataHandle = dataSources.dataHandler ? createFn(dataSources.dataHandler.value) - : Promise.resolve({ data: res }) + : (res) => Promise.resolve({ data: res }) const load = (http, options, dataSource, shouldFetch) => (params, customUrl) => { // 如果没有配置远程请求,则直接返回静态数据,返回前可能会有全局数据处理 @@ -84,7 +84,7 @@ dataSources.list.forEach((config) => { http.interceptors.request.use(willFetch, errorHandler) http.interceptors.response.use(dataHandler, errorHandler) - if (import.meta.env.VITE_APP_MOCK === 'mock') { + if (import.meta.env?.VITE_APP_MOCK === 'mock') { http.mock([ { url: config.options?.uri, diff --git a/packages/vue-generator/test/testcases/element-plus-case/expected/appdemo01/src/lowcodeConfig/lowcode.js b/packages/vue-generator/test/testcases/element-plus-case/expected/appdemo01/src/lowcodeConfig/lowcode.js index 29da8186..12164ca7 100644 --- a/packages/vue-generator/test/testcases/element-plus-case/expected/appdemo01/src/lowcodeConfig/lowcode.js +++ b/packages/vue-generator/test/testcases/element-plus-case/expected/appdemo01/src/lowcodeConfig/lowcode.js @@ -13,10 +13,10 @@ import { getCurrentInstance, nextTick, provide, inject } from 'vue' import { useRouter, useRoute } from 'vue-router' import { I18nInjectionKey } from 'vue-i18n' -import dataSourceMap from './dataSource' -import * as utils from '../utils' -import * as bridge from './bridge' -import { useStores } from './store' +import dataSourceMap from '@/lowcodeConfig/dataSource.js' +import * as utils from '@/utils.js' +import * as bridge from '@/lowcodeConfig/bridge.js' +import { useStores } from '@/lowcodeConfig/store.js' export const lowcodeWrap = (props, context) => { const global = {} diff --git a/packages/vue-generator/test/testcases/element-plus-case/expected/appdemo01/src/lowcodeConfig/store.js b/packages/vue-generator/test/testcases/element-plus-case/expected/appdemo01/src/lowcodeConfig/store.js index f7f39c7a..5da4c05a 100644 --- a/packages/vue-generator/test/testcases/element-plus-case/expected/appdemo01/src/lowcodeConfig/store.js +++ b/packages/vue-generator/test/testcases/element-plus-case/expected/appdemo01/src/lowcodeConfig/store.js @@ -1,4 +1,4 @@ -import * as useDefinedStores from '@/stores' +import * as useDefinedStores from '@/stores/index.js' const useStores = () => { const stores = {} diff --git a/packages/vue-generator/test/testcases/element-plus-case/expected/appdemo01/src/main.js b/packages/vue-generator/test/testcases/element-plus-case/expected/appdemo01/src/main.js index 311640fe..2d74a346 100644 --- a/packages/vue-generator/test/testcases/element-plus-case/expected/appdemo01/src/main.js +++ b/packages/vue-generator/test/testcases/element-plus-case/expected/appdemo01/src/main.js @@ -1,19 +1,7 @@ -/** - * Copyright (c) 2023 - present TinyEngine Authors. - * Copyright (c) 2023 - present Huawei Cloud Computing Technologies Co., Ltd. - * - * Use of this source code is governed by an MIT-style license. - * - * THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, - * BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR - * A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS. - * - */ - import { createApp } from 'vue' -import router from './router' +import router from '@/router/index.js' import { createPinia } from 'pinia' -import App from './App.vue' +import App from '@/App.vue' import 'element-plus/dist/index.css' const pinia = createPinia() createApp(App).use(pinia).use(router).mount('#app') diff --git a/packages/vue-generator/test/testcases/element-plus-case/expected/appdemo01/vite.config.js b/packages/vue-generator/test/testcases/element-plus-case/expected/appdemo01/vite.config.js index b611ebc4..ab49556b 100644 --- a/packages/vue-generator/test/testcases/element-plus-case/expected/appdemo01/vite.config.js +++ b/packages/vue-generator/test/testcases/element-plus-case/expected/appdemo01/vite.config.js @@ -11,7 +11,7 @@ export default defineConfig({ }, plugins: [vue(), vueJsx()], define: { - 'process.env': { ...process.env } + 'process.env': {} }, build: { minify: true, diff --git a/packages/vue-generator/test/testcases/generator/expected/appdemo01/package.json b/packages/vue-generator/test/testcases/generator/expected/appdemo01/package.json index a404389d..b5e1da08 100644 --- a/packages/vue-generator/test/testcases/generator/expected/appdemo01/package.json +++ b/packages/vue-generator/test/testcases/generator/expected/appdemo01/package.json @@ -10,7 +10,7 @@ "main": "dist/index.js", "module": "dist/index.js", "dependencies": { - "@opentiny/tiny-engine-i18n-host": "^1.0.0", + "@opentiny/tiny-engine-i18n-host": "^2.8.0", "@opentiny/vue": "0.1.16", "@opentiny/vue-icon": "0.1.16", "axios": "latest", diff --git a/packages/vue-generator/test/testcases/generator/expected/appdemo01/src/App.vue b/packages/vue-generator/test/testcases/generator/expected/appdemo01/src/App.vue index 72b6032d..6b5c19ba 100644 --- a/packages/vue-generator/test/testcases/generator/expected/appdemo01/src/App.vue +++ b/packages/vue-generator/test/testcases/generator/expected/appdemo01/src/App.vue @@ -5,7 +5,7 @@ diff --git a/packages/vue-generator/test/testcases/generator/expected/appdemo01/src/http/axios.js b/packages/vue-generator/test/testcases/generator/expected/appdemo01/src/http/axios.js index 3654c619..a7541116 100644 --- a/packages/vue-generator/test/testcases/generator/expected/appdemo01/src/http/axios.js +++ b/packages/vue-generator/test/testcases/generator/expected/appdemo01/src/http/axios.js @@ -11,49 +11,10 @@ */ import axios from 'axios' -import MockAdapter from 'axios-mock-adapter' export default (config) => { const instance = axios.create(config) const defaults = {} - let mock - - if (typeof MockAdapter.prototype.proxy === 'undefined') { - MockAdapter.prototype.proxy = function ({ url, config = {}, proxy, response, handleData } = {}) { - // eslint-disable-next-line @typescript-eslint/no-this-alias - let stream = this - const request = (proxy, any) => { - return (setting) => { - return new Promise((resolve) => { - config.responseType = 'json' - axios - .get(any ? proxy + setting.url + '.json' : proxy, config) - .then(({ data }) => { - if (typeof handleData === 'function') { - data = handleData.call(null, data, setting) - } - resolve([200, data]) - }) - .catch((error) => { - resolve([error.response.status, error.response.data]) - }) - }) - } - } - - if (url === '*' && proxy && typeof proxy === 'string') { - stream = proxy === '*' ? this.onAny().passThrough() : this.onAny().reply(request(proxy, true)) - } else { - if (proxy && typeof proxy === 'string') { - stream = this.onAny(url).reply(request(proxy)) - } else if (typeof response === 'function') { - stream = this.onAny(url).reply(response) - } - } - - return stream - } - } return { request(config) { @@ -115,25 +76,6 @@ export default (config) => { } } }, - mock(config) { - if (!mock) { - mock = new MockAdapter(instance) - } - - if (Array.isArray(config)) { - config.forEach((item) => { - mock.proxy(item) - }) - } - - return mock - }, - disableMock() { - if (mock) { - mock.restore() - } - mock = undefined - }, isMock() { return typeof mock !== 'undefined' }, diff --git a/packages/vue-generator/test/testcases/generator/expected/appdemo01/src/http/index.js b/packages/vue-generator/test/testcases/generator/expected/appdemo01/src/http/index.js index b0a08546..72735de3 100644 --- a/packages/vue-generator/test/testcases/generator/expected/appdemo01/src/http/index.js +++ b/packages/vue-generator/test/testcases/generator/expected/appdemo01/src/http/index.js @@ -10,8 +10,8 @@ * */ -import axios from './axios' -import config from './config' +import axios from '@/http/axios.js' +import config from '@/http/config.js' export default (dataHandler) => { const http = axios(config) diff --git a/packages/vue-generator/test/testcases/generator/expected/appdemo01/src/i18n/index.js b/packages/vue-generator/test/testcases/generator/expected/appdemo01/src/i18n/index.js index f6c510b2..8fbb0a50 100644 --- a/packages/vue-generator/test/testcases/generator/expected/appdemo01/src/i18n/index.js +++ b/packages/vue-generator/test/testcases/generator/expected/appdemo01/src/i18n/index.js @@ -1,6 +1,6 @@ import i18n from '@opentiny/tiny-engine-i18n-host' -import lowcode from '../lowcodeConfig/lowcode' -import locale from './locale.js' +import lowcode from '@/lowcodeConfig/lowcode.js' +import locale from '@/i18n/locale.js' i18n.lowcode = lowcode i18n.global.mergeLocaleMessage('en_US', locale.en_US) diff --git a/packages/vue-generator/test/testcases/generator/expected/appdemo01/src/i18n/locale.js b/packages/vue-generator/test/testcases/generator/expected/appdemo01/src/i18n/locale.js index 75308fc7..afe110b6 100644 --- a/packages/vue-generator/test/testcases/generator/expected/appdemo01/src/i18n/locale.js +++ b/packages/vue-generator/test/testcases/generator/expected/appdemo01/src/i18n/locale.js @@ -1,4 +1,4 @@ -import en_US from './en_US.json' -import zh_CN from './zh_CN.json' +import en_US from '@/i18n/en_US.json' +import zh_CN from '@/i18n/zh_CN.json' export default { en_US, zh_CN } diff --git a/packages/vue-generator/test/testcases/generator/expected/appdemo01/src/lowcodeConfig/dataSource.js b/packages/vue-generator/test/testcases/generator/expected/appdemo01/src/lowcodeConfig/dataSource.js index 5ac14973..1b54f910 100644 --- a/packages/vue-generator/test/testcases/generator/expected/appdemo01/src/lowcodeConfig/dataSource.js +++ b/packages/vue-generator/test/testcases/generator/expected/appdemo01/src/lowcodeConfig/dataSource.js @@ -10,8 +10,8 @@ * */ -import useHttp from '../http' -import dataSources from './dataSource.json' +import useHttp from '@/http/index.js' +import dataSources from '@/lowcodeConfig/dataSource.json' const dataSourceMap = {} @@ -27,7 +27,7 @@ const createFn = (fnContent) => { const globalDataHandle = dataSources.dataHandler ? createFn(dataSources.dataHandler.value) - : Promise.resolve({ data: res }) + : (res) => Promise.resolve({ data: res }) const load = (http, options, dataSource, shouldFetch) => (params, customUrl) => { // 如果没有配置远程请求,则直接返回静态数据,返回前可能会有全局数据处理 @@ -84,7 +84,7 @@ dataSources.list.forEach((config) => { http.interceptors.request.use(willFetch, errorHandler) http.interceptors.response.use(dataHandler, errorHandler) - if (import.meta.env.VITE_APP_MOCK === 'mock') { + if (import.meta.env?.VITE_APP_MOCK === 'mock') { http.mock([ { url: config.options?.uri, diff --git a/packages/vue-generator/test/testcases/generator/expected/appdemo01/src/lowcodeConfig/lowcode.js b/packages/vue-generator/test/testcases/generator/expected/appdemo01/src/lowcodeConfig/lowcode.js index 29da8186..12164ca7 100644 --- a/packages/vue-generator/test/testcases/generator/expected/appdemo01/src/lowcodeConfig/lowcode.js +++ b/packages/vue-generator/test/testcases/generator/expected/appdemo01/src/lowcodeConfig/lowcode.js @@ -13,10 +13,10 @@ import { getCurrentInstance, nextTick, provide, inject } from 'vue' import { useRouter, useRoute } from 'vue-router' import { I18nInjectionKey } from 'vue-i18n' -import dataSourceMap from './dataSource' -import * as utils from '../utils' -import * as bridge from './bridge' -import { useStores } from './store' +import dataSourceMap from '@/lowcodeConfig/dataSource.js' +import * as utils from '@/utils.js' +import * as bridge from '@/lowcodeConfig/bridge.js' +import { useStores } from '@/lowcodeConfig/store.js' export const lowcodeWrap = (props, context) => { const global = {} diff --git a/packages/vue-generator/test/testcases/generator/expected/appdemo01/src/lowcodeConfig/store.js b/packages/vue-generator/test/testcases/generator/expected/appdemo01/src/lowcodeConfig/store.js index f7f39c7a..5da4c05a 100644 --- a/packages/vue-generator/test/testcases/generator/expected/appdemo01/src/lowcodeConfig/store.js +++ b/packages/vue-generator/test/testcases/generator/expected/appdemo01/src/lowcodeConfig/store.js @@ -1,4 +1,4 @@ -import * as useDefinedStores from '@/stores' +import * as useDefinedStores from '@/stores/index.js' const useStores = () => { const stores = {} diff --git a/packages/vue-generator/test/testcases/generator/expected/appdemo01/src/main.js b/packages/vue-generator/test/testcases/generator/expected/appdemo01/src/main.js index c4574461..201ce66d 100644 --- a/packages/vue-generator/test/testcases/generator/expected/appdemo01/src/main.js +++ b/packages/vue-generator/test/testcases/generator/expected/appdemo01/src/main.js @@ -1,19 +1,7 @@ -/** - * Copyright (c) 2023 - present TinyEngine Authors. - * Copyright (c) 2023 - present Huawei Cloud Computing Technologies Co., Ltd. - * - * Use of this source code is governed by an MIT-style license. - * - * THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, - * BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR - * A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS. - * - */ - import { createApp } from 'vue' -import router from './router' +import router from '@/router/index.js' import { createPinia } from 'pinia' -import App from './App.vue' +import App from '@/App.vue' const pinia = createPinia() diff --git a/packages/vue-generator/test/testcases/generator/expected/appdemo01/vite.config.js b/packages/vue-generator/test/testcases/generator/expected/appdemo01/vite.config.js index b611ebc4..ab49556b 100644 --- a/packages/vue-generator/test/testcases/generator/expected/appdemo01/vite.config.js +++ b/packages/vue-generator/test/testcases/generator/expected/appdemo01/vite.config.js @@ -11,7 +11,7 @@ export default defineConfig({ }, plugins: [vue(), vueJsx()], define: { - 'process.env': { ...process.env } + 'process.env': {} }, build: { minify: true,