befly 3.10.1 → 3.10.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/.gitignore +0 -0
  2. package/configs/presetFields.ts +10 -0
  3. package/configs/presetRegexp.ts +225 -0
  4. package/package.json +15 -16
  5. package/tests/_mocks/mockSqliteDb.ts +0 -204
  6. package/tests/addonHelper-cache.test.ts +0 -32
  7. package/tests/api-integration-array-number.test.ts +0 -282
  8. package/tests/apiHandler-routePath-only.test.ts +0 -32
  9. package/tests/befly-config-env.test.ts +0 -78
  10. package/tests/cacheHelper.test.ts +0 -323
  11. package/tests/cacheKeys.test.ts +0 -41
  12. package/tests/checkApi-routePath-strict.test.ts +0 -166
  13. package/tests/checkMenu.test.ts +0 -346
  14. package/tests/checkTable-smoke.test.ts +0 -157
  15. package/tests/cipher.test.ts +0 -249
  16. package/tests/dbDialect-cache.test.ts +0 -23
  17. package/tests/dbDialect.test.ts +0 -46
  18. package/tests/dbHelper-advanced.test.ts +0 -723
  19. package/tests/dbHelper-all-array-types.test.ts +0 -316
  20. package/tests/dbHelper-array-serialization.test.ts +0 -258
  21. package/tests/dbHelper-batch-write.test.ts +0 -90
  22. package/tests/dbHelper-columns.test.ts +0 -234
  23. package/tests/dbHelper-execute.test.ts +0 -187
  24. package/tests/dbHelper-joins.test.ts +0 -221
  25. package/tests/fields-redis-cache.test.ts +0 -127
  26. package/tests/fields-validate.test.ts +0 -99
  27. package/tests/fixtures/scanFilesAddon/node_modules/@befly-addon/demo/apis/sub/b.ts +0 -3
  28. package/tests/fixtures/scanFilesApis/a.ts +0 -3
  29. package/tests/fixtures/scanFilesApis/sub/b.ts +0 -3
  30. package/tests/getClientIp.test.ts +0 -54
  31. package/tests/integration.test.ts +0 -189
  32. package/tests/jwt.test.ts +0 -65
  33. package/tests/loadPlugins-order-smoke.test.ts +0 -75
  34. package/tests/logger.test.ts +0 -325
  35. package/tests/redisHelper.test.ts +0 -495
  36. package/tests/redisKeys.test.ts +0 -9
  37. package/tests/scanConfig.test.ts +0 -144
  38. package/tests/scanFiles-routePath.test.ts +0 -46
  39. package/tests/smoke-sql.test.ts +0 -24
  40. package/tests/sqlBuilder-advanced.test.ts +0 -608
  41. package/tests/sqlBuilder.test.ts +0 -209
  42. package/tests/sync-connection.test.ts +0 -183
  43. package/tests/sync-init-guard.test.ts +0 -105
  44. package/tests/syncApi-insBatch-fields-consistent.test.ts +0 -61
  45. package/tests/syncApi-obsolete-records.test.ts +0 -69
  46. package/tests/syncApi-type-compat.test.ts +0 -72
  47. package/tests/syncDev-permissions.test.ts +0 -81
  48. package/tests/syncMenu-disableMenus-hard-delete.test.ts +0 -88
  49. package/tests/syncMenu-duplicate-path.test.ts +0 -122
  50. package/tests/syncMenu-obsolete-records.test.ts +0 -161
  51. package/tests/syncMenu-parentPath-from-tree.test.ts +0 -75
  52. package/tests/syncMenu-paths.test.ts +0 -59
  53. package/tests/syncTable-apply.test.ts +0 -279
  54. package/tests/syncTable-array-number.test.ts +0 -160
  55. package/tests/syncTable-constants.test.ts +0 -101
  56. package/tests/syncTable-db-integration.test.ts +0 -237
  57. package/tests/syncTable-ddl.test.ts +0 -245
  58. package/tests/syncTable-helpers.test.ts +0 -99
  59. package/tests/syncTable-schema.test.ts +0 -99
  60. package/tests/syncTable-testkit.test.ts +0 -25
  61. package/tests/syncTable-types.test.ts +0 -122
  62. package/tests/tableRef-and-deserialize.test.ts +0 -67
  63. package/tests/util.test.ts +0 -100
  64. package/tests/validator-array-number.test.ts +0 -310
  65. package/tests/validator-default.test.ts +0 -373
  66. package/tests/validator.test.ts +0 -679
@@ -1,279 +0,0 @@
1
- /**
2
- * syncTable 变更应用模块测试
3
- *
4
- * 测试 apply.ts 中的函数:
5
- * - compareFieldDefinition
6
- */
7
-
8
- import { describe, test, expect } from "bun:test";
9
-
10
- import { syncTable } from "../sync/syncTable.js";
11
-
12
- describe("compareFieldDefinition", () => {
13
- describe("长度变化检测", () => {
14
- test("string 类型长度变化被检测到", () => {
15
- const existingColumn = {
16
- type: "varchar",
17
- max: 50,
18
- nullable: false,
19
- defaultValue: "",
20
- comment: "用户名"
21
- };
22
- const fieldDef = {
23
- name: "用户名",
24
- type: "string",
25
- max: 100,
26
- nullable: false,
27
- default: null
28
- };
29
-
30
- const changes = syncTable.TestKit.compareFieldDefinition("mysql", existingColumn as any, fieldDef as any);
31
- const lengthChange = changes.find((c: any) => c.type === "length");
32
-
33
- expect(lengthChange).toBeDefined();
34
- expect(lengthChange.current).toBe(50);
35
- expect(lengthChange.expected).toBe(100);
36
- });
37
-
38
- test("长度相同无变化", () => {
39
- const existingColumn = {
40
- type: "varchar",
41
- max: 100,
42
- nullable: false,
43
- defaultValue: "",
44
- comment: "用户名"
45
- };
46
- const fieldDef = {
47
- name: "用户名",
48
- type: "string",
49
- max: 100,
50
- nullable: false,
51
- default: null
52
- };
53
-
54
- const changes = syncTable.TestKit.compareFieldDefinition("mysql", existingColumn as any, fieldDef as any);
55
- const lengthChange = changes.find((c: any) => c.type === "length");
56
-
57
- expect(lengthChange).toBeUndefined();
58
- });
59
- });
60
-
61
- describe("注释变化检测", () => {
62
- test("注释变化被检测到", () => {
63
- const existingColumn = {
64
- type: "varchar",
65
- max: 100,
66
- nullable: false,
67
- defaultValue: "",
68
- comment: "旧注释"
69
- };
70
- const fieldDef = {
71
- name: "新注释",
72
- type: "string",
73
- max: 100,
74
- nullable: false,
75
- default: null
76
- };
77
-
78
- const changes = syncTable.TestKit.compareFieldDefinition("mysql", existingColumn as any, fieldDef as any);
79
- const commentChange = changes.find((c: any) => c.type === "comment");
80
-
81
- expect(commentChange).toBeDefined();
82
- expect(commentChange.current).toBe("旧注释");
83
- expect(commentChange.expected).toBe("新注释");
84
- });
85
-
86
- test("注释相同无变化", () => {
87
- const existingColumn = {
88
- type: "varchar",
89
- max: 100,
90
- nullable: false,
91
- defaultValue: "",
92
- comment: "用户名"
93
- };
94
- const fieldDef = {
95
- name: "用户名",
96
- type: "string",
97
- max: 100,
98
- nullable: false,
99
- default: null
100
- };
101
-
102
- const changes = syncTable.TestKit.compareFieldDefinition("mysql", existingColumn as any, fieldDef as any);
103
- const commentChange = changes.find((c: any) => c.type === "comment");
104
-
105
- expect(commentChange).toBeUndefined();
106
- });
107
- });
108
-
109
- describe("数据类型变化检测", () => {
110
- test("类型变化被检测到", () => {
111
- const existingColumn = {
112
- type: "bigint",
113
- max: null,
114
- nullable: false,
115
- defaultValue: 0,
116
- comment: "数量"
117
- };
118
- const fieldDef = {
119
- name: "数量",
120
- type: "string",
121
- max: 100,
122
- nullable: false,
123
- default: null
124
- };
125
-
126
- const changes = syncTable.TestKit.compareFieldDefinition("mysql", existingColumn as any, fieldDef as any);
127
- const typeChange = changes.find((c: any) => c.type === "datatype");
128
-
129
- expect(typeChange).toBeDefined();
130
- expect(typeChange.current).toBe("bigint");
131
- expect(typeChange.expected).toBe("varchar");
132
- });
133
-
134
- test("类型相同无变化", () => {
135
- const existingColumn = {
136
- type: "bigint",
137
- max: null,
138
- nullable: false,
139
- defaultValue: 0,
140
- comment: "数量"
141
- };
142
- const fieldDef = {
143
- name: "数量",
144
- type: "number",
145
- max: null,
146
- nullable: false,
147
- default: 0
148
- };
149
-
150
- const changes = syncTable.TestKit.compareFieldDefinition("mysql", existingColumn as any, fieldDef as any);
151
- const typeChange = changes.find((c: any) => c.type === "datatype");
152
-
153
- expect(typeChange).toBeUndefined();
154
- });
155
- });
156
-
157
- describe("可空性变化检测", () => {
158
- test("nullable 变化被检测到", () => {
159
- const existingColumn = {
160
- type: "varchar",
161
- max: 100,
162
- nullable: false,
163
- defaultValue: "",
164
- comment: "用户名"
165
- };
166
- const fieldDef = {
167
- name: "用户名",
168
- type: "string",
169
- max: 100,
170
- nullable: true,
171
- default: null
172
- };
173
-
174
- const changes = syncTable.TestKit.compareFieldDefinition("mysql", existingColumn as any, fieldDef as any);
175
- const nullableChange = changes.find((c: any) => c.type === "nullable");
176
-
177
- expect(nullableChange).toBeDefined();
178
- expect(nullableChange.current).toBe(false);
179
- expect(nullableChange.expected).toBe(true);
180
- });
181
- });
182
-
183
- describe("默认值变化检测", () => {
184
- test("默认值变化被检测到", () => {
185
- const existingColumn = {
186
- type: "varchar",
187
- max: 100,
188
- nullable: false,
189
- defaultValue: "old",
190
- comment: "用户名"
191
- };
192
- const fieldDef = {
193
- name: "用户名",
194
- type: "string",
195
- max: 100,
196
- nullable: false,
197
- default: "new"
198
- };
199
-
200
- const changes = syncTable.TestKit.compareFieldDefinition("mysql", existingColumn as any, fieldDef as any);
201
- const defaultChange = changes.find((c: any) => c.type === "default");
202
-
203
- expect(defaultChange).toBeDefined();
204
- expect(defaultChange.current).toBe("old");
205
- expect(defaultChange.expected).toBe("new");
206
- });
207
-
208
- test("null 默认值被正确处理", () => {
209
- const existingColumn = {
210
- type: "varchar",
211
- max: 100,
212
- nullable: false,
213
- defaultValue: "",
214
- comment: "用户名"
215
- };
216
- const fieldDef = {
217
- name: "用户名",
218
- type: "string",
219
- max: 100,
220
- nullable: false,
221
- default: null // null 会被解析为空字符串
222
- };
223
-
224
- const changes = syncTable.TestKit.compareFieldDefinition("mysql", existingColumn as any, fieldDef as any);
225
- const defaultChange = changes.find((c: any) => c.type === "default");
226
-
227
- // null -> '' (空字符串),与现有值相同,无变化
228
- expect(defaultChange).toBeUndefined();
229
- });
230
- });
231
-
232
- describe("多变化组合", () => {
233
- test("多个变化同时被检测", () => {
234
- const existingColumn = {
235
- type: "varchar",
236
- max: 50,
237
- nullable: false,
238
- defaultValue: "old",
239
- comment: "旧注释"
240
- };
241
- const fieldDef = {
242
- name: "新注释",
243
- type: "string",
244
- max: 100,
245
- nullable: true,
246
- default: "new"
247
- };
248
-
249
- const changes = syncTable.TestKit.compareFieldDefinition("mysql", existingColumn as any, fieldDef as any);
250
-
251
- expect(changes.length).toBe(4); // length, comment, nullable, default
252
- expect(changes.some((c: any) => c.type === "length")).toBe(true);
253
- expect(changes.some((c: any) => c.type === "comment")).toBe(true);
254
- expect(changes.some((c: any) => c.type === "nullable")).toBe(true);
255
- expect(changes.some((c: any) => c.type === "default")).toBe(true);
256
- });
257
-
258
- test("无变化返回空数组", () => {
259
- const existingColumn = {
260
- type: "varchar",
261
- max: 100,
262
- nullable: false,
263
- defaultValue: "",
264
- comment: "用户名"
265
- };
266
- const fieldDef = {
267
- name: "用户名",
268
- type: "string",
269
- max: 100,
270
- nullable: false,
271
- default: null
272
- };
273
-
274
- const changes = syncTable.TestKit.compareFieldDefinition("mysql", existingColumn as any, fieldDef as any);
275
-
276
- expect(changes.length).toBe(0);
277
- });
278
- });
279
- });
@@ -1,160 +0,0 @@
1
- /**
2
- * 测试 syncTable 对 array_number_string 和 array_number_text 类型的支持
3
- */
4
-
5
- import { describe, expect, test } from "bun:test";
6
-
7
- import { syncTable } from "../sync/syncTable.js";
8
-
9
- describe("syncTable - array_number 类型支持", () => {
10
- // ==================== 类型判断测试 ====================
11
-
12
- test("isStringOrArrayType: array_number_string 需要长度", () => {
13
- expect(syncTable.TestKit.isStringOrArrayType("array_number_string")).toBe(true);
14
- });
15
-
16
- test("isStringOrArrayType: array_number_text 不需要长度", () => {
17
- expect(syncTable.TestKit.isStringOrArrayType("array_number_text")).toBe(false);
18
- });
19
-
20
- // ==================== SQL 类型映射测试 ====================
21
-
22
- test("getSqlType: array_number_string 生成 VARCHAR(max)", () => {
23
- const sqlType = syncTable.TestKit.getSqlType("mysql", "array_number_string", 500);
24
- expect(sqlType).toMatch(/VARCHAR\(500\)/i);
25
- });
26
-
27
- test("getSqlType: array_number_text 生成 TEXT/MEDIUMTEXT", () => {
28
- const sqlType = syncTable.TestKit.getSqlType("mysql", "array_number_text", null);
29
- expect(sqlType).toMatch(/TEXT/i);
30
- });
31
-
32
- test("getSqlType: array_number_string 使用 max 参数", () => {
33
- const sqlType1 = syncTable.TestKit.getSqlType("mysql", "array_number_string", 200);
34
- const sqlType2 = syncTable.TestKit.getSqlType("mysql", "array_number_string", 1000);
35
-
36
- expect(sqlType1).toMatch(/VARCHAR\(200\)/i);
37
- expect(sqlType2).toMatch(/VARCHAR\(1000\)/i);
38
- });
39
-
40
- // ==================== 默认值处理测试 ====================
41
-
42
- test('resolveDefaultValue: array_number_string null 时返回 "[]"', () => {
43
- const result = syncTable.TestKit.resolveDefaultValue(null, "array_number_string");
44
- expect(result).toBe("[]");
45
- });
46
-
47
- test("resolveDefaultValue: array_number_string 有默认值时保留", () => {
48
- const result = syncTable.TestKit.resolveDefaultValue("[1,2,3]", "array_number_string");
49
- expect(result).toBe("[1,2,3]");
50
- });
51
-
52
- test('resolveDefaultValue: array_number_text null 时返回 "null"', () => {
53
- const result = syncTable.TestKit.resolveDefaultValue(null, "array_number_text");
54
- expect(result).toBe("null");
55
- });
56
-
57
- test("resolveDefaultValue: array_number_text 有默认值时保留", () => {
58
- const result = syncTable.TestKit.resolveDefaultValue("[100,200]", "array_number_text");
59
- expect(result).toBe("[100,200]");
60
- });
61
-
62
- test('resolveDefaultValue: 字符串 "null" 也视为 null', () => {
63
- const result1 = syncTable.TestKit.resolveDefaultValue("null", "array_number_string");
64
- const result2 = syncTable.TestKit.resolveDefaultValue("null", "array_number_text");
65
-
66
- expect(result1).toBe("[]");
67
- expect(result2).toBe("null");
68
- });
69
-
70
- // ==================== SQL DEFAULT 子句测试 ====================
71
-
72
- test("generateDefaultSql: array_number_string 生成 DEFAULT 子句", () => {
73
- const sql = syncTable.TestKit.generateDefaultSql("[]", "array_number_string");
74
- expect(sql).toBe(" DEFAULT '[]'");
75
- });
76
-
77
- test("generateDefaultSql: array_number_string 自定义默认值", () => {
78
- const sql = syncTable.TestKit.generateDefaultSql("[10,20,30]", "array_number_string");
79
- expect(sql).toBe(" DEFAULT '[10,20,30]'");
80
- });
81
-
82
- test("generateDefaultSql: array_number_text 不生成 DEFAULT", () => {
83
- const sql = syncTable.TestKit.generateDefaultSql("[]", "array_number_text");
84
- expect(sql).toBe("");
85
- });
86
-
87
- test("generateDefaultSql: array_number_text null 时不生成 DEFAULT", () => {
88
- const sql = syncTable.TestKit.generateDefaultSql("null", "array_number_text");
89
- expect(sql).toBe("");
90
- });
91
-
92
- // ==================== 单引号转义测试 ====================
93
-
94
- test("generateDefaultSql: 默认值包含单引号时正确转义", () => {
95
- const sql = syncTable.TestKit.generateDefaultSql("[1,'test',2]", "array_number_string");
96
- expect(sql).toBe(" DEFAULT '[1,''test'',2]'");
97
- });
98
-
99
- // ==================== 完整流程测试 ====================
100
-
101
- test("完整流程: array_number_string 字段定义", () => {
102
- // 模拟字段定义:"标签ID|array_number_string|0|500|[]|0"
103
- const fieldType = "array_number_string";
104
- const fieldMax = 500;
105
- const fieldDefault = null;
106
-
107
- // 1. 判断是否需要长度
108
- expect(syncTable.TestKit.isStringOrArrayType(fieldType)).toBe(true);
109
-
110
- // 2. 获取 SQL 类型
111
- const sqlType = syncTable.TestKit.getSqlType("mysql", fieldType, fieldMax);
112
- expect(sqlType).toMatch(/VARCHAR\(500\)/i);
113
-
114
- // 3. 处理默认值
115
- const actualDefault = syncTable.TestKit.resolveDefaultValue(fieldDefault, fieldType);
116
- expect(actualDefault).toBe("[]");
117
-
118
- // 4. 生成 DEFAULT 子句
119
- const defaultSql = syncTable.TestKit.generateDefaultSql(actualDefault, fieldType);
120
- expect(defaultSql).toBe(" DEFAULT '[]'");
121
- });
122
-
123
- test("完整流程: array_number_text 字段定义", () => {
124
- // 模拟字段定义:"关联ID|array_number_text|||null|0"
125
- const fieldType = "array_number_text";
126
- const fieldMax = null;
127
- const fieldDefault = null;
128
-
129
- // 1. 判断是否需要长度
130
- expect(syncTable.TestKit.isStringOrArrayType(fieldType)).toBe(false);
131
-
132
- // 2. 获取 SQL 类型
133
- const sqlType = syncTable.TestKit.getSqlType("mysql", fieldType, fieldMax);
134
- expect(sqlType).toMatch(/TEXT/i);
135
-
136
- // 3. 处理默认值
137
- const actualDefault = syncTable.TestKit.resolveDefaultValue(fieldDefault, fieldType);
138
- expect(actualDefault).toBe("null");
139
-
140
- // 4. 生成 DEFAULT 子句(TEXT 类型不支持)
141
- const defaultSql = syncTable.TestKit.generateDefaultSql(actualDefault, fieldType);
142
- expect(defaultSql).toBe("");
143
- });
144
-
145
- test("完整流程: array_number_string 自定义默认值", () => {
146
- // 模拟字段定义:"分数|array_number_string|2|10|[60,70,80]|0"
147
- const fieldType = "array_number_string";
148
- const fieldMax = 10;
149
- const fieldDefault = "[60,70,80]";
150
-
151
- const sqlType = syncTable.TestKit.getSqlType("mysql", fieldType, fieldMax);
152
- expect(sqlType).toMatch(/VARCHAR\(10\)/i);
153
-
154
- const actualDefault = syncTable.TestKit.resolveDefaultValue(fieldDefault, fieldType);
155
- expect(actualDefault).toBe("[60,70,80]");
156
-
157
- const defaultSql = syncTable.TestKit.generateDefaultSql(actualDefault, fieldType);
158
- expect(defaultSql).toBe(" DEFAULT '[60,70,80]'");
159
- });
160
- });
@@ -1,101 +0,0 @@
1
- /**
2
- * syncTable 常量模块测试
3
- *
4
- * 测试 constants.ts 中的常量:
5
- * - DB_VERSION_REQUIREMENTS
6
- * - SYSTEM_INDEX_FIELDS
7
- * - SYSTEM_INDEX_FIELDS
8
- * - CHANGE_TYPE_LABELS
9
- * - MYSQL_TABLE_CONFIG
10
- * - typeMapping
11
- */
12
-
13
- import { describe, test, expect } from "bun:test";
14
-
15
- import { syncTable } from "../sync/syncTable.js";
16
-
17
- describe("DB_VERSION_REQUIREMENTS", () => {
18
- test("MySQL 最低版本为 8", () => {
19
- expect(syncTable.TestKit.DB_VERSION_REQUIREMENTS.MYSQL_MIN_MAJOR).toBe(8);
20
- });
21
-
22
- test("PostgreSQL 最低版本为 17", () => {
23
- expect(syncTable.TestKit.DB_VERSION_REQUIREMENTS.POSTGRES_MIN_MAJOR).toBe(17);
24
- });
25
-
26
- test("SQLite 最低版本为 3.50.0", () => {
27
- expect(syncTable.TestKit.DB_VERSION_REQUIREMENTS.SQLITE_MIN_VERSION).toBe("3.50.0");
28
- });
29
- });
30
-
31
- describe("SYSTEM_INDEX_FIELDS", () => {
32
- test("包含 created_at", () => {
33
- expect(syncTable.TestKit.SYSTEM_INDEX_FIELDS).toContain("created_at");
34
- });
35
-
36
- test("包含 updated_at", () => {
37
- expect(syncTable.TestKit.SYSTEM_INDEX_FIELDS).toContain("updated_at");
38
- });
39
-
40
- test("包含 state", () => {
41
- expect(syncTable.TestKit.SYSTEM_INDEX_FIELDS).toContain("state");
42
- });
43
-
44
- test("共 3 个系统索引字段", () => {
45
- expect(syncTable.TestKit.SYSTEM_INDEX_FIELDS.length).toBe(3);
46
- });
47
- });
48
-
49
- describe("CHANGE_TYPE_LABELS", () => {
50
- test('length 对应 "长度"', () => {
51
- expect((syncTable.TestKit.CHANGE_TYPE_LABELS as any).length).toBe("长度");
52
- });
53
-
54
- test('datatype 对应 "类型"', () => {
55
- expect(syncTable.TestKit.CHANGE_TYPE_LABELS.datatype).toBe("类型");
56
- });
57
-
58
- test('comment 对应 "注释"', () => {
59
- expect(syncTable.TestKit.CHANGE_TYPE_LABELS.comment).toBe("注释");
60
- });
61
-
62
- test('default 对应 "默认值"', () => {
63
- expect(syncTable.TestKit.CHANGE_TYPE_LABELS.default).toBe("默认值");
64
- });
65
- });
66
-
67
- describe("MYSQL_TABLE_CONFIG", () => {
68
- test("ENGINE 为 InnoDB", () => {
69
- expect(syncTable.TestKit.MYSQL_TABLE_CONFIG.ENGINE).toBe("InnoDB");
70
- });
71
-
72
- test("CHARSET 为 utf8mb4", () => {
73
- expect(syncTable.TestKit.MYSQL_TABLE_CONFIG.CHARSET).toBe("utf8mb4");
74
- });
75
-
76
- test("COLLATE 为 utf8mb4_0900_ai_ci", () => {
77
- expect(syncTable.TestKit.MYSQL_TABLE_CONFIG.COLLATE).toBe("utf8mb4_0900_ai_ci");
78
- });
79
- });
80
-
81
- describe("getTypeMapping (MySQL)", () => {
82
- test("number 映射为 BIGINT", () => {
83
- expect(syncTable.TestKit.getTypeMapping("mysql").number).toBe("BIGINT");
84
- });
85
-
86
- test("string 映射为 VARCHAR", () => {
87
- expect(syncTable.TestKit.getTypeMapping("mysql").string).toBe("VARCHAR");
88
- });
89
-
90
- test("text 映射为 MEDIUMTEXT", () => {
91
- expect(syncTable.TestKit.getTypeMapping("mysql").text).toBe("MEDIUMTEXT");
92
- });
93
-
94
- test("array_string 映射为 VARCHAR", () => {
95
- expect(syncTable.TestKit.getTypeMapping("mysql").array_string).toBe("VARCHAR");
96
- });
97
-
98
- test("array_text 映射为 MEDIUMTEXT", () => {
99
- expect(syncTable.TestKit.getTypeMapping("mysql").array_text).toBe("MEDIUMTEXT");
100
- });
101
- });