Skip to content

Commit

Permalink
✅ test: add more test for migration
Browse files Browse the repository at this point in the history
  • Loading branch information
arvinxx committed Apr 10, 2024
1 parent 021bf91 commit 4a305e9
Show file tree
Hide file tree
Showing 3 changed files with 109 additions and 4 deletions.
5 changes: 2 additions & 3 deletions .i18nrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,13 +24,12 @@ module.exports = defineConfig({
],
temperature: 0,
modelName: 'gpt-3.5-turbo-0125',
splitToken: 1024,
splitToken: 2048,
experimental: {
jsonMode: true,
},
reference:
'You need to maintain the component format of MDX, and the output text does not need to be wrapped in any code block syntax at the outermost level.',
markdown: {
// reference: '你需要保持 mdx 的组件格式,输出文本不需要在最外层包裹任何代码块语法',
entry: ['./README.zh-CN.md', './contributing/**/*.zh-CN.md', './docs/**/*.zh-CN.mdx'],
entryLocale: 'zh-CN',
outputLocales: ['en-US'],
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@
"@anthropic-ai/sdk": "^0.18.0",
"@auth/core": "0.28.0",
"@aws-sdk/client-bedrock-runtime": "^3.549.0",
"@azure/openai": "1.0.0-beta.12",
"@azure/openai": "^1.0.0-beta.12",
"@cfworker/json-schema": "^1.12.8",
"@google/generative-ai": "^0.3.1",
"@icons-pack/react-simple-icons": "^9.4.0",
Expand Down
106 changes: 106 additions & 0 deletions src/migrations/FromV3ToV4/migrations.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -86,4 +86,110 @@ describe('MigrationV3ToV4', () => {
// expect(migratedData.state.topics).toEqual(outputV3DataFromV1.state.topics);
// expect(migratedData.state.messages).toEqual(outputV3DataFromV1.state.messages);
});

describe('Edge Case', () => {
it('should handle undefined settings or languageModel', () => {
const data: MigrationData = {
version: 3,
state: {
// settings undefined
},
};

const migratedData = versionController.migrate(data);

expect(migratedData.version).toEqual(4);
expect(migratedData.state.settings).toBeUndefined();
});

it('should handle undefined languageModel', () => {
const data: MigrationData = {
version: 3,
state: {
settings: {
// languageModel undefined
},
},
};

const migratedData = versionController.migrate(data);

expect(migratedData.version).toEqual(4);
expect(migratedData.state.settings.languageModel).toBeUndefined();
});

it('should handle missing provider configurations', () => {
const data: MigrationData = {
version: 3,
state: {
settings: {
languageModel: {
// missing togetherai、openrouter 、 ollama
openAI: {
// openAI
},
},
},
},
};

const migratedData = versionController.migrate(data);

expect(migratedData.version).toEqual(4);
expect(migratedData.state.settings.languageModel.togetherai).toBeUndefined();
expect(migratedData.state.settings.languageModel.openrouter).toBeUndefined();
expect(migratedData.state.settings.languageModel.ollama).toBeUndefined();
});

it('should success for invalid data format', () => {
const data: MigrationData = {
version: 3,
state: {
settings: {
languageModel: {
openAI: 'invalid-config', // 错误的配置格式
},
},
},
};

const migratedData = versionController.migrate(data);

expect(migratedData.version).toEqual(4);
expect(migratedData.state.settings.languageModel.openai).toEqual({ enabled: true });
expect(migratedData.state.settings.languageModel.togetherai).toBeUndefined();
expect(migratedData.state.settings.languageModel.openrouter).toBeUndefined();
expect(migratedData.state.settings.languageModel.ollama).toBeUndefined();
});

it('should handle empty strings and empty objects', () => {
const data: MigrationData = {
version: 3,
state: {
settings: {
languageModel: {
openAI: undefined,
togetherai: {
apiKey: '',
endpoint: '',
customModelName: '',
},
},
},
},
};

const migratedData = versionController.migrate(data);

expect(migratedData.version).toEqual(4);
expect(migratedData.state.settings.languageModel.openai).toEqual({
apiKey: '',
enabled: true,
});

expect(migratedData.state.settings.languageModel.togetherai.apiKey).toEqual('');
expect(migratedData.state.settings.languageModel.togetherai.endpoint).toEqual('');
expect(migratedData.state.settings.languageModel.togetherai.customModelCards).toBeUndefined();
});
});
});

0 comments on commit 4a305e9

Please sign in to comment.