mirror of
https://github.com/CherryHQ/cherry-studio.git
synced 2025-12-20 07:00:09 +08:00
chore: format
This commit is contained in:
parent
9da3e82c47
commit
d321cd23ef
@ -1,117 +1,114 @@
|
|||||||
{
|
{
|
||||||
"version": "6",
|
"_meta": {
|
||||||
|
"columns": {},
|
||||||
|
"schemas": {},
|
||||||
|
"tables": {}
|
||||||
|
},
|
||||||
"dialect": "sqlite",
|
"dialect": "sqlite",
|
||||||
|
"enums": {},
|
||||||
"id": "de8009d7-95b9-4f99-99fa-4b8795708f21",
|
"id": "de8009d7-95b9-4f99-99fa-4b8795708f21",
|
||||||
|
"internal": {
|
||||||
|
"indexes": {}
|
||||||
|
},
|
||||||
"prevId": "00000000-0000-0000-0000-000000000000",
|
"prevId": "00000000-0000-0000-0000-000000000000",
|
||||||
"tables": {
|
"tables": {
|
||||||
"app_state": {
|
"app_state": {
|
||||||
"name": "app_state",
|
"checkConstraints": {},
|
||||||
"columns": {
|
"columns": {
|
||||||
"key": {
|
"created_at": {
|
||||||
"name": "key",
|
"autoincrement": false,
|
||||||
"type": "text",
|
"name": "created_at",
|
||||||
"primaryKey": true,
|
"notNull": false,
|
||||||
"notNull": true,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"value": {
|
|
||||||
"name": "value",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": false,
|
"primaryKey": false,
|
||||||
"notNull": true,
|
"type": "integer"
|
||||||
"autoincrement": false
|
|
||||||
},
|
},
|
||||||
"description": {
|
"description": {
|
||||||
|
"autoincrement": false,
|
||||||
"name": "description",
|
"name": "description",
|
||||||
"type": "text",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false,
|
"notNull": false,
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"created_at": {
|
|
||||||
"name": "created_at",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
"primaryKey": false,
|
||||||
"notNull": false,
|
"type": "text"
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"updated_at": {
|
|
||||||
"name": "updated_at",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false,
|
|
||||||
"autoincrement": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {},
|
|
||||||
"foreignKeys": {},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {},
|
|
||||||
"checkConstraints": {}
|
|
||||||
},
|
|
||||||
"preference": {
|
|
||||||
"name": "preference",
|
|
||||||
"columns": {
|
|
||||||
"scope": {
|
|
||||||
"name": "scope",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
},
|
||||||
"key": {
|
"key": {
|
||||||
|
"autoincrement": false,
|
||||||
"name": "key",
|
"name": "key",
|
||||||
"type": "text",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
"notNull": true,
|
||||||
"autoincrement": false
|
"primaryKey": true,
|
||||||
},
|
"type": "text"
|
||||||
"value": {
|
|
||||||
"name": "value",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"created_at": {
|
|
||||||
"name": "created_at",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
},
|
||||||
"updated_at": {
|
"updated_at": {
|
||||||
|
"autoincrement": false,
|
||||||
"name": "updated_at",
|
"name": "updated_at",
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false,
|
"notNull": false,
|
||||||
"autoincrement": false
|
"primaryKey": false,
|
||||||
|
"type": "integer"
|
||||||
|
},
|
||||||
|
"value": {
|
||||||
|
"autoincrement": false,
|
||||||
|
"name": "value",
|
||||||
|
"notNull": true,
|
||||||
|
"primaryKey": false,
|
||||||
|
"type": "text"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"compositePrimaryKeys": {},
|
||||||
|
"foreignKeys": {},
|
||||||
|
"indexes": {},
|
||||||
|
"name": "app_state",
|
||||||
|
"uniqueConstraints": {}
|
||||||
|
},
|
||||||
|
"preference": {
|
||||||
|
"checkConstraints": {},
|
||||||
|
"columns": {
|
||||||
|
"created_at": {
|
||||||
|
"autoincrement": false,
|
||||||
|
"name": "created_at",
|
||||||
|
"notNull": false,
|
||||||
|
"primaryKey": false,
|
||||||
|
"type": "integer"
|
||||||
|
},
|
||||||
|
"key": {
|
||||||
|
"autoincrement": false,
|
||||||
|
"name": "key",
|
||||||
|
"notNull": true,
|
||||||
|
"primaryKey": false,
|
||||||
|
"type": "text"
|
||||||
|
},
|
||||||
|
"scope": {
|
||||||
|
"autoincrement": false,
|
||||||
|
"name": "scope",
|
||||||
|
"notNull": true,
|
||||||
|
"primaryKey": false,
|
||||||
|
"type": "text"
|
||||||
|
},
|
||||||
|
"updated_at": {
|
||||||
|
"autoincrement": false,
|
||||||
|
"name": "updated_at",
|
||||||
|
"notNull": false,
|
||||||
|
"primaryKey": false,
|
||||||
|
"type": "integer"
|
||||||
|
},
|
||||||
|
"value": {
|
||||||
|
"autoincrement": false,
|
||||||
|
"name": "value",
|
||||||
|
"notNull": false,
|
||||||
|
"primaryKey": false,
|
||||||
|
"type": "text"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"compositePrimaryKeys": {},
|
||||||
|
"foreignKeys": {},
|
||||||
"indexes": {
|
"indexes": {
|
||||||
"scope_name_idx": {
|
"scope_name_idx": {
|
||||||
"name": "scope_name_idx",
|
"columns": ["scope", "key"],
|
||||||
"columns": [
|
"isUnique": false,
|
||||||
"scope",
|
"name": "scope_name_idx"
|
||||||
"key"
|
|
||||||
],
|
|
||||||
"isUnique": false
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"foreignKeys": {},
|
"name": "preference",
|
||||||
"compositePrimaryKeys": {},
|
"uniqueConstraints": {}
|
||||||
"uniqueConstraints": {},
|
|
||||||
"checkConstraints": {}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"views": {},
|
"version": "6",
|
||||||
"enums": {},
|
"views": {}
|
||||||
"_meta": {
|
|
||||||
"schemas": {},
|
|
||||||
"tables": {},
|
|
||||||
"columns": {}
|
|
||||||
},
|
|
||||||
"internal": {
|
|
||||||
"indexes": {}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@ -1,13 +1,13 @@
|
|||||||
{
|
{
|
||||||
"version": "7",
|
|
||||||
"dialect": "sqlite",
|
"dialect": "sqlite",
|
||||||
"entries": [
|
"entries": [
|
||||||
{
|
{
|
||||||
|
"breakpoints": true,
|
||||||
"idx": 0,
|
"idx": 0,
|
||||||
"version": "6",
|
|
||||||
"when": 1754745234572,
|
|
||||||
"tag": "0000_solid_lord_hawal",
|
"tag": "0000_solid_lord_hawal",
|
||||||
"breakpoints": true
|
"version": "6",
|
||||||
|
"when": 1754745234572
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"version": "7"
|
||||||
}
|
}
|
||||||
@ -1,15 +1,15 @@
|
|||||||
<!DOCTYPE html>
|
<!doctype html>
|
||||||
<html>
|
<html>
|
||||||
|
<head>
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8" />
|
<meta charset="UTF-8" />
|
||||||
<title>Cherry Studio - Data Refactor Migration</title>
|
<title>Cherry Studio - Data Refactor Migration</title>
|
||||||
<meta http-equiv="Content-Security-Policy"
|
<meta
|
||||||
|
http-equiv="Content-Security-Policy"
|
||||||
content="default-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob:;" />
|
content="default-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob:;" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body id="root" theme-mode="light">
|
<body id="root" theme-mode="light">
|
||||||
<script type="module" src="/src/windows/dataRefactorMigrate/entryPoint.tsx"></script>
|
<script type="module" src="/src/windows/dataRefactorMigrate/entryPoint.tsx"></script>
|
||||||
<style>
|
<style>
|
||||||
html {
|
html {
|
||||||
@ -57,6 +57,5 @@
|
|||||||
color: var(--color-primary) !important;
|
color: var(--color-primary) !important;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
</html>
|
</html>
|
||||||
@ -1,15 +1,15 @@
|
|||||||
<!DOCTYPE html>
|
<!doctype html>
|
||||||
<html>
|
<html>
|
||||||
|
<head>
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8" />
|
<meta charset="UTF-8" />
|
||||||
<title>Data Refactor Test Window - PreferenceService Testing</title>
|
<title>Data Refactor Test Window - PreferenceService Testing</title>
|
||||||
<meta http-equiv="Content-Security-Policy"
|
<meta
|
||||||
|
http-equiv="Content-Security-Policy"
|
||||||
content="default-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob:;" />
|
content="default-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob:;" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body id="root" theme-mode="light">
|
<body id="root" theme-mode="light">
|
||||||
<script type="module" src="/src/windows/dataRefactorTest/entryPoint.tsx"></script>
|
<script type="module" src="/src/windows/dataRefactorTest/entryPoint.tsx"></script>
|
||||||
<style>
|
<style>
|
||||||
html {
|
html {
|
||||||
@ -58,6 +58,5 @@
|
|||||||
color: var(--color-primary) !important;
|
color: var(--color-primary) !important;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
</html>
|
</html>
|
||||||
@ -5,6 +5,7 @@
|
|||||||
## 🎯 当前实现
|
## 🎯 当前实现
|
||||||
|
|
||||||
✅ **已完成的功能**:
|
✅ **已完成的功能**:
|
||||||
|
|
||||||
- 专用的测试窗口 (DataRefactorTestWindow)
|
- 专用的测试窗口 (DataRefactorTestWindow)
|
||||||
- **双窗口启动**:应用启动时会同时打开主窗口和两个测试窗口
|
- **双窗口启动**:应用启动时会同时打开主窗口和两个测试窗口
|
||||||
- **跨窗口同步测试**:两个测试窗口可以相互验证偏好设置的实时同步
|
- **跨窗口同步测试**:两个测试窗口可以相互验证偏好设置的实时同步
|
||||||
@ -18,11 +19,13 @@
|
|||||||
## 测试组件
|
## 测试组件
|
||||||
|
|
||||||
### 1. PreferenceService 基础测试
|
### 1. PreferenceService 基础测试
|
||||||
|
|
||||||
- 直接测试服务层API:get, set, getCachedValue, isCached, preload, getMultiple
|
- 直接测试服务层API:get, set, getCachedValue, isCached, preload, getMultiple
|
||||||
- 支持各种数据类型:字符串、数字、布尔值、JSON对象
|
- 支持各种数据类型:字符串、数字、布尔值、JSON对象
|
||||||
- 实时显示操作结果
|
- 实时显示操作结果
|
||||||
|
|
||||||
### 2. usePreference Hook 测试
|
### 2. usePreference Hook 测试
|
||||||
|
|
||||||
- 测试单个偏好设置的React hooks
|
- 测试单个偏好设置的React hooks
|
||||||
- 支持的测试键:
|
- 支持的测试键:
|
||||||
- `app.theme.mode` - 主题模式
|
- `app.theme.mode` - 主题模式
|
||||||
@ -35,6 +38,7 @@
|
|||||||
- **Slider联动控制**:数值类型偏好设置提供交互式滑块,支持实时拖拽调整
|
- **Slider联动控制**:数值类型偏好设置提供交互式滑块,支持实时拖拽调整
|
||||||
|
|
||||||
### 3. usePreferences 批量操作测试
|
### 3. usePreferences 批量操作测试
|
||||||
|
|
||||||
- 测试多个偏好设置的批量管理
|
- 测试多个偏好设置的批量管理
|
||||||
- 5种预设场景:基础设置、UI设置、用户设置、🎛️数值设置、自定义组合
|
- 5种预设场景:基础设置、UI设置、用户设置、🎛️数值设置、自定义组合
|
||||||
- **🎛️ 数值设置场景**:专门的Slider联动控制区域,包含缩放、字体、选择窗口透明度三个滑块
|
- **🎛️ 数值设置场景**:专门的Slider联动控制区域,包含缩放、字体、选择窗口透明度三个滑块
|
||||||
@ -42,6 +46,7 @@
|
|||||||
- 快速切换操作
|
- 快速切换操作
|
||||||
|
|
||||||
### 4. Hook 高级功能测试
|
### 4. Hook 高级功能测试
|
||||||
|
|
||||||
- 预加载机制测试
|
- 预加载机制测试
|
||||||
- 订阅机制验证
|
- 订阅机制验证
|
||||||
- 缓存管理测试
|
- 缓存管理测试
|
||||||
@ -53,6 +58,7 @@
|
|||||||
**自动启动**:应用正常启动时会自动创建两个测试窗口,窗口会自动错位显示避免重叠
|
**自动启动**:应用正常启动时会自动创建两个测试窗口,窗口会自动错位显示避免重叠
|
||||||
|
|
||||||
**手动启动**:
|
**手动启动**:
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
// 在开发者控制台中执行 - 创建单个测试窗口
|
// 在开发者控制台中执行 - 创建单个测试窗口
|
||||||
const { dataRefactorMigrateService } = require('./out/main/data/migrate/dataRefactor/DataRefactorMigrateService')
|
const { dataRefactorMigrateService } = require('./out/main/data/migrate/dataRefactor/DataRefactorMigrateService')
|
||||||
@ -82,12 +88,14 @@ src/renderer/src/windows/dataRefactorTest/
|
|||||||
## 跨窗口同步测试
|
## 跨窗口同步测试
|
||||||
|
|
||||||
🔄 **测试场景**:
|
🔄 **测试场景**:
|
||||||
|
|
||||||
1. **实时同步验证**:在窗口#1中修改某个偏好设置,立即观察窗口#2是否同步更新
|
1. **实时同步验证**:在窗口#1中修改某个偏好设置,立即观察窗口#2是否同步更新
|
||||||
2. **并发修改测试**:在两个窗口中快速连续修改同一设置,验证数据一致性
|
2. **并发修改测试**:在两个窗口中快速连续修改同一设置,验证数据一致性
|
||||||
3. **批量操作同步**:在一个窗口中批量更新多个设置,观察另一个窗口的同步表现
|
3. **批量操作同步**:在一个窗口中批量更新多个设置,观察另一个窗口的同步表现
|
||||||
4. **Hook实例同步**:验证多个usePreference hook实例是否正确同步
|
4. **Hook实例同步**:验证多个usePreference hook实例是否正确同步
|
||||||
|
|
||||||
📋 **测试步骤**:
|
📋 **测试步骤**:
|
||||||
|
|
||||||
1. 同时打开两个测试窗口(自动启动)
|
1. 同时打开两个测试窗口(自动启动)
|
||||||
2. 选择相同的偏好设置键进行测试
|
2. 选择相同的偏好设置键进行测试
|
||||||
3. 在窗口#1中修改值,观察窗口#2的反应
|
3. 在窗口#1中修改值,观察窗口#2的反应
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user