Spaces:
Runtime error
Runtime error
import { DEFAULT_SYSTEM_PROMPT, DEFAULT_TEMPERATURE } from '@/utils/app/const'; | |
import { | |
cleanData, | |
isExportFormatV1, | |
isExportFormatV2, | |
isExportFormatV3, | |
isExportFormatV4, | |
isLatestExportFormat, | |
} from '@/utils/app/importExport'; | |
import { ExportFormatV1, ExportFormatV2, ExportFormatV4 } from '@/types/export'; | |
import { OpenAIModelID, OpenAIModels } from '@/types/openai'; | |
import { describe, expect, it } from 'vitest'; | |
describe('Export Format Functions', () => { | |
describe('isExportFormatV1', () => { | |
it('should return true for v1 format', () => { | |
const obj = [{ id: 1 }]; | |
expect(isExportFormatV1(obj)).toBe(true); | |
}); | |
it('should return false for non-v1 formats', () => { | |
const obj = { version: 3, history: [], folders: [] }; | |
expect(isExportFormatV1(obj)).toBe(false); | |
}); | |
}); | |
describe('isExportFormatV2', () => { | |
it('should return true for v2 format', () => { | |
const obj = { history: [], folders: [] }; | |
expect(isExportFormatV2(obj)).toBe(true); | |
}); | |
it('should return false for non-v2 formats', () => { | |
const obj = { version: 3, history: [], folders: [] }; | |
expect(isExportFormatV2(obj)).toBe(false); | |
}); | |
}); | |
describe('isExportFormatV3', () => { | |
it('should return true for v3 format', () => { | |
const obj = { version: 3, history: [], folders: [] }; | |
expect(isExportFormatV3(obj)).toBe(true); | |
}); | |
it('should return false for non-v3 formats', () => { | |
const obj = { version: 4, history: [], folders: [] }; | |
expect(isExportFormatV3(obj)).toBe(false); | |
}); | |
}); | |
describe('isExportFormatV4', () => { | |
it('should return true for v4 format', () => { | |
const obj = { version: 4, history: [], folders: [], prompts: [] }; | |
expect(isExportFormatV4(obj)).toBe(true); | |
}); | |
it('should return false for non-v4 formats', () => { | |
const obj = { version: 5, history: [], folders: [], prompts: [] }; | |
expect(isExportFormatV4(obj)).toBe(false); | |
}); | |
}); | |
}); | |
describe('cleanData Functions', () => { | |
describe('cleaning v1 data', () => { | |
it('should return the latest format', () => { | |
const data = [ | |
{ | |
id: 1, | |
name: 'conversation 1', | |
messages: [ | |
{ | |
role: 'user', | |
content: "what's up ?", | |
}, | |
{ | |
role: 'assistant', | |
content: 'Hi', | |
}, | |
], | |
}, | |
] as ExportFormatV1; | |
const obj = cleanData(data); | |
expect(isLatestExportFormat(obj)).toBe(true); | |
expect(obj).toEqual({ | |
version: 4, | |
history: [ | |
{ | |
id: 1, | |
name: 'conversation 1', | |
messages: [ | |
{ | |
role: 'user', | |
content: "what's up ?", | |
}, | |
{ | |
role: 'assistant', | |
content: 'Hi', | |
}, | |
], | |
model: OpenAIModels[OpenAIModelID.GPT_3_5], | |
prompt: DEFAULT_SYSTEM_PROMPT, | |
temperature: DEFAULT_TEMPERATURE, | |
folderId: null, | |
}, | |
], | |
folders: [], | |
prompts: [], | |
}); | |
}); | |
}); | |
describe('cleaning v2 data', () => { | |
it('should return the latest format', () => { | |
const data = { | |
history: [ | |
{ | |
id: '1', | |
name: 'conversation 1', | |
messages: [ | |
{ | |
role: 'user', | |
content: "what's up ?", | |
}, | |
{ | |
role: 'assistant', | |
content: 'Hi', | |
}, | |
], | |
}, | |
], | |
folders: [ | |
{ | |
id: 1, | |
name: 'folder 1', | |
}, | |
], | |
} as ExportFormatV2; | |
const obj = cleanData(data); | |
expect(isLatestExportFormat(obj)).toBe(true); | |
expect(obj).toEqual({ | |
version: 4, | |
history: [ | |
{ | |
id: '1', | |
name: 'conversation 1', | |
messages: [ | |
{ | |
role: 'user', | |
content: "what's up ?", | |
}, | |
{ | |
role: 'assistant', | |
content: 'Hi', | |
}, | |
], | |
model: OpenAIModels[OpenAIModelID.GPT_3_5], | |
prompt: DEFAULT_SYSTEM_PROMPT, | |
temperature: DEFAULT_TEMPERATURE, | |
folderId: null, | |
}, | |
], | |
folders: [ | |
{ | |
id: '1', | |
name: 'folder 1', | |
type: 'chat', | |
}, | |
], | |
prompts: [], | |
}); | |
}); | |
}); | |
describe('cleaning v4 data', () => { | |
it('should return the latest format', () => { | |
const data = { | |
version: 4, | |
history: [ | |
{ | |
id: '1', | |
name: 'conversation 1', | |
messages: [ | |
{ | |
role: 'user', | |
content: "what's up ?", | |
}, | |
{ | |
role: 'assistant', | |
content: 'Hi', | |
}, | |
], | |
model: OpenAIModels[OpenAIModelID.GPT_3_5], | |
prompt: DEFAULT_SYSTEM_PROMPT, | |
temperature: DEFAULT_TEMPERATURE, | |
folderId: null, | |
}, | |
], | |
folders: [ | |
{ | |
id: '1', | |
name: 'folder 1', | |
type: 'chat', | |
}, | |
], | |
prompts: [ | |
{ | |
id: '1', | |
name: 'prompt 1', | |
description: '', | |
content: '', | |
model: OpenAIModels[OpenAIModelID.GPT_3_5], | |
folderId: null, | |
}, | |
], | |
} as ExportFormatV4; | |
const obj = cleanData(data); | |
expect(isLatestExportFormat(obj)).toBe(true); | |
expect(obj).toEqual({ | |
version: 4, | |
history: [ | |
{ | |
id: '1', | |
name: 'conversation 1', | |
messages: [ | |
{ | |
role: 'user', | |
content: "what's up ?", | |
}, | |
{ | |
role: 'assistant', | |
content: 'Hi', | |
}, | |
], | |
model: OpenAIModels[OpenAIModelID.GPT_3_5], | |
prompt: DEFAULT_SYSTEM_PROMPT, | |
temperature: DEFAULT_TEMPERATURE, | |
folderId: null, | |
}, | |
], | |
folders: [ | |
{ | |
id: '1', | |
name: 'folder 1', | |
type: 'chat', | |
}, | |
], | |
prompts: [ | |
{ | |
id: '1', | |
name: 'prompt 1', | |
description: '', | |
content: '', | |
model: OpenAIModels[OpenAIModelID.GPT_3_5], | |
folderId: null, | |
}, | |
], | |
}); | |
}); | |
}); | |
}); | |