Skip to main content
Glama
tasks.fixtures.ts13.9 kB
import type { Task, TaskDeleted } from "@lokalise/node-api"; /** * Test fixtures for Tasks domain * These are TypeScript objects based on actual API responses */ // Helper to create a base task object with default values const createBaseTask = (overrides: Partial<Task> = {}): Task => ({ task_id: 0, title: "", description: "", status: "created", progress: 0, due_date: "", due_date_timestamp: 0, keys_count: 0, words_count: 0, created_at: "", created_at_timestamp: 0, created_by: 0, created_by_email: "", can_be_parent: false, task_type: "translation", parent_task_id: 0, closing_tags: [], source_language_iso: "en", languages: [], auto_close_items: true, auto_close_languages: true, auto_close_task: true, completed_at: "", completed_at_timestamp: 0, completed_by: 0, completed_by_email: "", do_lock_translations: false, custom_translation_status_ids: [], ...overrides, }); // List fixture - multiple tasks export const tasksListFixture: Task[] = [ createBaseTask({ task_id: 21659, title: "demo task", can_be_parent: false, task_type: "translation", parent_task_id: undefined, closing_tags: [], description: "", status: "completed", progress: 0, due_date: undefined, due_date_timestamp: undefined, keys_count: 1, words_count: 2, created_at: "2019-07-31T16:16:00.000Z", created_at_timestamp: 1564589760, created_by: 20181, created_by_email: "bodrovis@protonmail.com", source_language_iso: "en", languages: [ { language_iso: null as unknown as string, // API can return null users: [ { user_id: 20181, email: "bodrovis@protonmail.com", fullname: "Ilya B", }, { user_id: 35554, email: "golosizpru@ya.ru", fullname: "Joanne", }, { user_id: 31113, email: "translator@mycompany.com", fullname: "Mr. Translator", }, ], groups: [], keys: [], status: "created", progress: 0, initial_tm_leverage: { "0%+": 0, "60%+": 0, "75%+": 0, "95%+": 0, "100%": 2, }, keys_count: 1, words_count: 2, completed_at: undefined as unknown as string, completed_at_timestamp: undefined as unknown as number, completed_by: undefined as unknown as number, completed_by_email: undefined as unknown as string, tm_leverage: undefined as unknown as { status: string; value: { "0%+": number; "50%+": number; "75%+": number; "85%+": number; "95%+": number; "100%": number; }; }, }, ], auto_close_items: true, auto_close_languages: true, auto_close_task: true, completed_at: "2019-10-01T11:09:04.000Z", completed_at_timestamp: 1569928144, completed_by: 20181, completed_by_email: "bodrovis@protonmail.com", do_lock_translations: false, custom_translation_status_ids: [], }), createBaseTask({ task_id: 11925, title: "node updated", can_be_parent: false, task_type: "review", parent_task_id: undefined, closing_tags: [], description: "", status: "completed", progress: 0, due_date: undefined, due_date_timestamp: undefined, keys_count: 16, words_count: 275, created_at: "2019-05-13T16:15:26.000Z", created_at_timestamp: 1557764126, created_by: 20181, created_by_email: "bodrovis@protonmail.com", source_language_iso: "en", languages: [ { language_iso: "sq", users: [ { user_id: 20181, email: "bodrovis@protonmail.com", fullname: "Ilya B", }, ], groups: [], keys: [], status: "created", progress: 0, initial_tm_leverage: { "0%+": 0, "60%+": 0, "75%+": 0, "95%+": 0, "100%": 0, }, keys_count: 16, words_count: 37, completed_at: undefined as unknown as string, completed_at_timestamp: undefined as unknown as number, completed_by: undefined as unknown as number, completed_by_email: undefined as unknown as string, tm_leverage: undefined as unknown as { status: string; value: { "0%+": number; "50%+": number; "75%+": number; "85%+": number; "95%+": number; "100%": number; }; }, }, { language_iso: "ar_001", users: [ { user_id: 20181, email: "bodrovis@protonmail.com", fullname: "Ilya B", }, ], groups: [], keys: [], status: "created", progress: 0, initial_tm_leverage: { "0%+": 0, "60%+": 0, "75%+": 0, "95%+": 0, "100%": 0, }, keys_count: 15, words_count: 36, completed_at: undefined as unknown as string, completed_at_timestamp: undefined as unknown as number, completed_by: undefined as unknown as number, completed_by_email: undefined as unknown as string, tm_leverage: undefined as unknown as { status: string; value: { "0%+": number; "50%+": number; "75%+": number; "85%+": number; "95%+": number; "100%": number; }; }, }, ], auto_close_items: true, auto_close_languages: true, auto_close_task: true, completed_at: "2019-10-01T11:09:12.000Z", completed_at_timestamp: 1569928152, completed_by: 20181, completed_by_email: "bodrovis@protonmail.com", do_lock_translations: false, custom_translation_status_ids: [], }), createBaseTask({ task_id: 10001, title: "My new task", can_be_parent: false, task_type: "translation", parent_task_id: undefined, closing_tags: ["finalized"], description: "Description is here", status: "completed", progress: 0, due_date: "2019-04-29T22:00:00.000Z", due_date_timestamp: 1556575200, keys_count: 2, words_count: 16, created_at: "2019-04-17T13:44:00.000Z", created_at_timestamp: 1555508640, created_by: 20181, created_by_email: "bodrovis@protonmail.com", source_language_iso: "en", languages: [ { language_iso: "fr", users: [ { user_id: 34051, email: "demo2@example.com", fullname: "Demo 2 User", }, { user_id: 35554, email: "golosizpru@ya.ru", fullname: "Joanne", }, ], groups: [], keys: [], status: "created", progress: 0, initial_tm_leverage: { "0%+": 0, "60%+": 0, "75%+": 0, "95%+": 0, "100%": 0, }, keys_count: 2, words_count: 5, completed_at: undefined as unknown as string, completed_at_timestamp: undefined as unknown as number, completed_by: undefined as unknown as number, completed_by_email: undefined as unknown as string, tm_leverage: undefined as unknown as { status: string; value: { "0%+": number; "50%+": number; "75%+": number; "85%+": number; "95%+": number; "100%": number; }; }, }, { language_iso: null as unknown as string, users: [ { user_id: 35555, email: "john@example.com", fullname: "John", }, ], groups: [], keys: [], status: "created", progress: 0, initial_tm_leverage: { "0%+": 0, "60%+": 0, "75%+": 0, "95%+": 0, "100%": 0, }, keys_count: 2, words_count: 8, completed_at: undefined as unknown as string, completed_at_timestamp: undefined as unknown as number, completed_by: undefined as unknown as number, completed_by_email: undefined as unknown as string, tm_leverage: undefined as unknown as { status: string; value: { "0%+": number; "50%+": number; "75%+": number; "85%+": number; "95%+": number; "100%": number; }; }, }, ], auto_close_items: true, auto_close_languages: true, auto_close_task: true, completed_at: "2019-10-01T11:14:10.000Z", completed_at_timestamp: 1569928450, completed_by: 20181, completed_by_email: "bodrovis@protonmail.com", do_lock_translations: false, custom_translation_status_ids: [], }), ]; // Pagination fixture - single task export const taskPaginationFixture: Task = createBaseTask({ task_id: 10001, title: "My new task", can_be_parent: false, task_type: "translation", parent_task_id: undefined, closing_tags: ["finalized"], description: "Description is here", status: "completed", progress: 0, due_date: "2019-04-29T22:00:00.000Z", due_date_timestamp: 1556575200, keys_count: 2, words_count: 16, created_at: "2019-04-17T13:44:00.000Z", created_at_timestamp: 1555508640, created_by: 20181, created_by_email: "bodrovis@protonmail.com", source_language_iso: "en", languages: [ { language_iso: "fr", users: [ { user_id: 34051, email: "demo2@example.com", fullname: "Demo 2 User", }, { user_id: 35554, email: "golosizpru@ya.ru", fullname: "Joanne", }, ], groups: [], keys: [], status: "created", progress: 0, initial_tm_leverage: { "0%+": 0, "60%+": 0, "75%+": 0, "95%+": 0, "100%": 0, }, keys_count: 2, words_count: 5, completed_at: undefined as unknown as string, completed_at_timestamp: undefined as unknown as number, completed_by: undefined as unknown as number, completed_by_email: undefined as unknown as string, tm_leverage: undefined as unknown as { status: string; value: { "0%+": number; "50%+": number; "75%+": number; "85%+": number; "95%+": number; "100%": number; }; }, }, { language_iso: null as unknown as string, users: [ { user_id: 35555, email: "john@example.com", fullname: "John", }, ], groups: [], keys: [], status: "created", progress: 0, initial_tm_leverage: { "0%+": 0, "60%+": 0, "75%+": 0, "95%+": 0, "100%": 0, }, keys_count: 2, words_count: 8, completed_at: undefined as unknown as string, completed_at_timestamp: undefined as unknown as number, completed_by: undefined as unknown as number, completed_by_email: undefined as unknown as string, tm_leverage: undefined as unknown as { status: string; value: { "0%+": number; "50%+": number; "75%+": number; "85%+": number; "95%+": number; "100%": number; }; }, }, ], auto_close_items: true, auto_close_languages: true, auto_close_task: true, completed_at: "2019-10-01T11:14:10.000Z", completed_at_timestamp: 1569928450, completed_by: 20181, completed_by_email: "bodrovis@protonmail.com", do_lock_translations: false, custom_translation_status_ids: [], }); // Retrieve fixture - single task with TM leverage export const taskRetrieveFixture: Task = createBaseTask({ task_id: 21659, title: "demo task", can_be_parent: false, task_type: "translation", parent_task_id: undefined, closing_tags: [], description: "", status: "completed", progress: 0, due_date: undefined, due_date_timestamp: undefined, keys_count: 1, words_count: 2, created_at: "2019-07-31T16:16:00.000Z", created_at_timestamp: 1564589760, created_by: 20181, created_by_email: "bodrovis@protonmail.com", source_language_iso: "en", languages: [ { language_iso: "fr", users: [], groups: [], keys: [], status: "completed", progress: 100, initial_tm_leverage: { "0%+": 0, "60%+": 0, "75%+": 0, "95%+": 0, "100%": 100, }, tm_leverage: { status: "completed", value: { "0%+": 0, "50%+": 31, "75%+": 31, "85%+": 31, "95%+": 31, "100%": 100, }, }, keys_count: 1, words_count: 2, completed_at: "2019-10-01T11:09:04.000Z", completed_at_timestamp: 1569928144, completed_by: 20181, completed_by_email: "bodrovis@protonmail.com", }, ], auto_close_items: true, auto_close_languages: true, auto_close_task: true, completed_at: "2019-10-01T11:09:04.000Z", completed_at_timestamp: 1569928144, completed_by: 20181, completed_by_email: "bodrovis@protonmail.com", do_lock_translations: false, custom_translation_status_ids: [], }); // Create task fixture export const taskCreateFixture: Task = createBaseTask({ task_id: 1927993, title: "New Translation Task", description: "Translate new features", status: "created", progress: 0, due_date: "2024-12-31T23:59:59.000Z", due_date_timestamp: 1735689599, keys_count: 10, words_count: 150, created_at: "2024-01-15T10:00:00.000Z", created_at_timestamp: 1705316400, created_by: 20181, created_by_email: "creator@example.com", can_be_parent: true, task_type: "translation", parent_task_id: undefined, closing_tags: ["review", "finalized"], source_language_iso: "en", languages: [ { language_iso: "de", users: [ { user_id: 12345, email: "translator@example.com", fullname: "German Translator", }, ], groups: [], keys: [], status: "created", progress: 0, initial_tm_leverage: { "0%+": 0, "60%+": 0, "75%+": 0, "95%+": 0, "100%": 0, }, keys_count: 10, words_count: 150, completed_at: undefined as unknown as string, completed_at_timestamp: undefined as unknown as number, completed_by: undefined as unknown as number, completed_by_email: undefined as unknown as string, tm_leverage: undefined as unknown as { status: string; value: { "0%+": number; "50%+": number; "75%+": number; "85%+": number; "95%+": number; "100%": number; }; }, }, ], auto_close_items: false, auto_close_languages: false, auto_close_task: false, completed_at: undefined, completed_at_timestamp: undefined, completed_by: undefined, completed_by_email: undefined, do_lock_translations: true, custom_translation_status_ids: [123, 456], }); // Delete task fixture export const taskDeleteFixture: TaskDeleted = { project_id: "803826145ba90b42d5d860.46800099", task_deleted: true, }; // Empty list fixture export const tasksEmptyListFixture: Task[] = [];

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/AbdallahAHO/lokalise-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server