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,