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[] = [];