@belmirongola/taskup-cli
v1.0.2
Published
CLI para TaskUp MD — Automação via API Supabase
Maintainers
Readme
TaskUp MD — Automação Playwright
Automação completa para o TaskUp MD, cobrindo login, CRUD de tarefas/projectos, Kanban, calendário, equipa e pesquisa global.
Estrutura
taskup-automation/
├── src/
│ ├── index.ts # Barrel export
│ ├── types.ts # Tipos partilhados
│ ├── auth.ts # Login / logout
│ ├── navigation.ts # Navegação sidebar + dark mode
│ ├── tasks.ts # CRUD tarefas + dashboard stats
│ ├── projects.ts # CRUD projectos
│ ├── team.ts # Gestão de equipa
│ ├── kanban.ts # Board Kanban + drag & drop
│ ├── calendar.ts # Calendário (vistas, navegação)
│ └── search.ts # Pesquisa global (⌘+K)
├── tests/
│ └── smoke.spec.ts # Testes de fumo
├── examples/
│ └── full-workflow.ts # Workflow completo de demonstração
├── playwright.config.ts
├── tsconfig.json
└── package.jsonSetup
cd taskup-automation
npm install
npx playwright install chromiumUso
Correr testes de fumo
npm test # headless
npm run test:headed # com browser visível
npm run test:ui # Playwright UI modeCorrer workflow completo
npm run exampleImportar como biblioteca
import { auth, tasks, projects, kanban } from "./src";
// Login
await auth.login(page, { email: "...", password: "..." });
// Criar tarefa
await tasks.createTask(page, {
title: "Minha Tarefa",
project: "Meu Projecto",
priority: "Alta",
});
// Criar projecto
await projects.createProject(page, {
name: "Novo Projecto",
startDate: "2026-04-01",
endDate: "2026-12-31",
});
// Arrastar tarefa no Kanban
await kanban.dragTask(page, "Minha Tarefa", "Em Progresso");Módulos
| Módulo | Funções |
|--------|---------|
| auth | login, logout |
| navigation | navigateTo, toggleDarkMode, getCurrentPage |
| tasks | createTask, editTask, deleteTask, changeTaskStatus, addComment, listTasks, getDashboardStats |
| projects | createProject, editProject, deleteProject, listProjects |
| team | addTeamMember, removeTeamMember, listTeamMembers |
| kanban | getKanbanColumns, openTaskDetail, closeTaskDetail, dragTask |
| calendar | openCalendar, changeView, nextMonth, previousMonth, goToToday, clickDay, getVisibleEvents |
| search | openSearch, search, searchAndOpen, closeSearch |
Notas
- A app é uma SPA — a navegação usa clicks no sidebar, não URLs directos
- Selectores usam combinações de
role,text,placeholdereclasspara máxima resiliência workers: 1no config porque a app tem estado partilhado entre testes- Credenciais no exemplo são para demo; em produção usar variáveis de ambiente
