mm_sqlite 1.0.5 → 1.0.7
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.
- package/LICENSE +201 -0
- package/README.md +352 -0
- package/config.json +8 -0
- package/db/data/example.db.db +0 -0
- package/db/db/test_all_methods.db.db +0 -0
- package/db/db/test_core_methods.db.db +0 -0
- package/db/mm.db +0 -0
- package/db.js +791 -117
- package/index.js +694 -164
- package/link_model.js +132 -0
- package/package.json +43 -36
- package/sql.js +1080 -127
- package/sql.json +56 -0
- package/sql_builder.js +375 -0
- package/test.js +76 -137
- package/test_all_methods.js +115 -0
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
// 核心方法测试脚本 - 专注测试del、delList等关键方法
|
|
2
|
+
const { Sqlite } = require('./index');
|
|
3
|
+
|
|
4
|
+
async function testAllMethods() {
|
|
5
|
+
try {
|
|
6
|
+
console.log('=== 开始测试 SQLite 模块核心方法 ===');
|
|
7
|
+
|
|
8
|
+
// 初始化SQLite实例
|
|
9
|
+
const sql = new Sqlite({
|
|
10
|
+
database: './db/test_core_methods.db'
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
await sql.open();
|
|
14
|
+
console.log('数据库连接成功');
|
|
15
|
+
|
|
16
|
+
// 获取数据库操作实例
|
|
17
|
+
const db = sql.db();
|
|
18
|
+
const test_table = 'test_core_methods';
|
|
19
|
+
|
|
20
|
+
// 准备测试表
|
|
21
|
+
console.log('\n=== 1. 准备测试环境 ===');
|
|
22
|
+
await db.exec(`DROP TABLE IF EXISTS ${test_table};`);
|
|
23
|
+
await db.exec(`CREATE TABLE IF NOT EXISTS ${test_table} (
|
|
24
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
25
|
+
username VARCHAR(50) NOT NULL,
|
|
26
|
+
email VARCHAR(100),
|
|
27
|
+
age INTEGER DEFAULT 0 NOT NULL
|
|
28
|
+
);`);
|
|
29
|
+
console.log('测试表创建完成');
|
|
30
|
+
|
|
31
|
+
db.table = test_table;
|
|
32
|
+
|
|
33
|
+
// 2. 单条数据操作测试
|
|
34
|
+
console.log('\n=== 2. 单条数据操作测试 ===');
|
|
35
|
+
// 添加单条数据
|
|
36
|
+
const addResult = await db.add({
|
|
37
|
+
username: 'test_user1',
|
|
38
|
+
email: 'test1@example.com',
|
|
39
|
+
age: 25
|
|
40
|
+
});
|
|
41
|
+
console.log('✓ add方法测试通过:', addResult);
|
|
42
|
+
|
|
43
|
+
// 查询单条数据
|
|
44
|
+
const getResult = await db.get({ username: 'test_user1' });
|
|
45
|
+
console.log('✓ get方法测试通过,数据:', getResult[0]?.username);
|
|
46
|
+
|
|
47
|
+
// 修改数据
|
|
48
|
+
const setResult = await db.set(
|
|
49
|
+
{ username: 'test_user1' },
|
|
50
|
+
{ age: 26 }
|
|
51
|
+
);
|
|
52
|
+
console.log('✓ set方法测试通过:', setResult);
|
|
53
|
+
|
|
54
|
+
// 3. 批量操作测试 - 重点测试addList
|
|
55
|
+
console.log('\n=== 3. 批量添加测试 ===');
|
|
56
|
+
const batchData = [
|
|
57
|
+
{ username: 'batch_user1', email: 'batch1@example.com', age: 30 },
|
|
58
|
+
{ username: 'batch_user2', email: 'batch2@example.com', age: 31 },
|
|
59
|
+
{ username: 'batch_user3', email: 'batch3@example.com', age: 32 }
|
|
60
|
+
];
|
|
61
|
+
|
|
62
|
+
const addListResult = await db.addList(batchData);
|
|
63
|
+
console.log('✓ addList方法测试通过:', addListResult);
|
|
64
|
+
|
|
65
|
+
// 4. 单条删除测试 - 重点测试del
|
|
66
|
+
console.log('\n=== 4. 单条删除测试 ===');
|
|
67
|
+
const delResult = await db.del({ username: 'test_user1' });
|
|
68
|
+
console.log('✓ del方法测试通过:', delResult);
|
|
69
|
+
|
|
70
|
+
// 验证删除结果
|
|
71
|
+
const delCheck = await db.get({ username: 'test_user1' });
|
|
72
|
+
console.log(' del方法验证结果: 删除成功', delCheck.length === 0);
|
|
73
|
+
|
|
74
|
+
// 5. 批量删除测试 - 重点测试delList
|
|
75
|
+
console.log('\n=== 5. 批量删除测试 ===');
|
|
76
|
+
const deleteList = [
|
|
77
|
+
{ query: { username: 'batch_user1' } },
|
|
78
|
+
{ query: { username: 'batch_user2' } }
|
|
79
|
+
];
|
|
80
|
+
|
|
81
|
+
const delListResult = await db.delList(deleteList);
|
|
82
|
+
console.log('✓ delList方法测试通过:', delListResult);
|
|
83
|
+
|
|
84
|
+
// 验证批量删除结果
|
|
85
|
+
const batch1Check = await db.get({ username: 'batch_user1' });
|
|
86
|
+
const batch2Check = await db.get({ username: 'batch_user2' });
|
|
87
|
+
console.log(' delList方法验证结果: 批量删除成功',
|
|
88
|
+
batch1Check.length === 0 && batch2Check.length === 0);
|
|
89
|
+
|
|
90
|
+
// 验证剩余数据
|
|
91
|
+
const remainingData = await db.get({});
|
|
92
|
+
console.log(' 剩余数据数量:', remainingData.length);
|
|
93
|
+
|
|
94
|
+
// 6. 清理测试数据
|
|
95
|
+
console.log('\n=== 6. 清理测试环境 ===');
|
|
96
|
+
await db.exec(`DROP TABLE IF EXISTS ${test_table};`);
|
|
97
|
+
console.log('测试表清理完成');
|
|
98
|
+
|
|
99
|
+
// 关闭数据库连接
|
|
100
|
+
await sql.close();
|
|
101
|
+
console.log('\n=== 核心方法测试完成!===');
|
|
102
|
+
console.log('✓ del方法工作正常');
|
|
103
|
+
console.log('✓ delList方法工作正常');
|
|
104
|
+
console.log('✓ 其他核心方法(add, get, set, addList)工作正常');
|
|
105
|
+
|
|
106
|
+
} catch (error) {
|
|
107
|
+
console.error('测试过程中出现错误:', error.message);
|
|
108
|
+
console.error('错误堆栈:', error.stack);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
// 执行测试
|
|
113
|
+
(async () => {
|
|
114
|
+
await testAllMethods();
|
|
115
|
+
})();
|