-
Notifications
You must be signed in to change notification settings - Fork 371
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update README.md with <details> tag #557
Conversation
A tag <details> serve para ocultar o texto e apenas exibir quando <summary> for clicado. Além disso, organizei toda a parte da documentação.
@gabrielsozinho is attempting to deploy a commit to the TabNews Team on Vercel. To accomplish this, @gabrielsozinho needs to request access to the Team. Afterwards, an owner of the Team is required to accept their membership request. If you're already a member of the respective Vercel Team, make sure that your Personal Vercel Account is connected to your GitHub account. |
Só pra deixar registrado, alterações que fiz hoje aqui:
|
@gabrielsozinho sensacional meu caro!!! Está ficando muito legal!!! 🤝 👍 Em paralelo, para conseguir concluir essa Milestone, optei por empurrar a Documentação da API para a próxima Milestone, e isto então também terá impacto no PR #599 do @CarlosZiegler De qualquer forma, vou deixar registrado um rabisco aqui que estava na minha mente, que é organizar os endpoints por método e rota, por exemplo: Documentação da APIEndereço base de Produção: https://www.tabnews.com.br/
GET /api/v1/contents Listar os conteúdo existentes.
ExemplosListando os últimos conteúdos mais relevantestabnews.com.br/tests/integration/api/v1/contents/get.test.js Lines 263 to 324 in 9b9dcc2
POST /api/v1/contents Criar novos conteúdos.
ExemplosCriando uma publicação
|
test('"root" content with minimum valid data', async () => { | |
const defaultUser = await orchestrator.createUser(); | |
await orchestrator.activateUser(defaultUser); | |
const sessionObject = await orchestrator.createSession(defaultUser); | |
const response = await fetch(`${orchestrator.webserverUrl}/api/v1/contents`, { | |
method: 'post', | |
headers: { | |
'Content-Type': 'application/json', | |
cookie: `session_id=${sessionObject.token}`, | |
}, | |
body: JSON.stringify({ | |
title: | |
'Deveria conseguir! E o campo "slug" é opcional & 95,5% dos usuários não usam :) [áéíóú?@#$*<>|+-=.,;:_] <- (caracteres especiais)', | |
body: 'Deveria conseguir, pois atualmente todos os usuários recebem todas as features relacionadas a "content".', | |
}), | |
}); | |
const responseBody = await response.json(); | |
expect(response.status).toEqual(201); | |
expect(responseBody).toStrictEqual({ | |
id: responseBody.id, | |
owner_id: defaultUser.id, | |
parent_id: null, | |
slug: 'deveria-conseguir-e-o-campo-slug-e-opcional-e-95-5-por-cento-dos-usuarios-nao-usam-aeiou-caracteres-especiais', | |
title: | |
'Deveria conseguir! E o campo "slug" é opcional & 95,5% dos usuários não usam :) [áéíóú?@#$*<>|+-=.,;:_] <- (caracteres especiais)', | |
body: 'Deveria conseguir, pois atualmente todos os usuários recebem todas as features relacionadas a "content".', | |
status: 'draft', | |
source_url: null, | |
created_at: responseBody.created_at, | |
updated_at: responseBody.updated_at, | |
published_at: null, | |
deleted_at: null, | |
tabcoins: 0, | |
owner_username: defaultUser.username, | |
}); | |
expect(uuidVersion(responseBody.id)).toEqual(4); | |
expect(Date.parse(responseBody.created_at)).not.toEqual(NaN); | |
expect(Date.parse(responseBody.updated_at)).not.toEqual(NaN); | |
}); |
Criando uma publicação child
tabnews.com.br/tests/integration/api/v1/contents/post.test.js
Lines 1690 to 1738 in 9b9dcc2
test('"child" content with minimum valid data', async () => { | |
const defaultUser = await orchestrator.createUser(); | |
await orchestrator.activateUser(defaultUser); | |
const sessionObject = await orchestrator.createSession(defaultUser); | |
const rootContent = await orchestrator.createContent({ | |
owner_id: defaultUser.id, | |
title: 'Conteúdo raiz', | |
status: 'published', | |
}); | |
const response = await fetch(`${orchestrator.webserverUrl}/api/v1/contents`, { | |
method: 'post', | |
headers: { | |
'Content-Type': 'application/json', | |
cookie: `session_id=${sessionObject.token}`, | |
}, | |
body: JSON.stringify({ | |
body: 'Deveria conseguir, pois atualmente todos os usuários recebem todas as features relacionadas a "content".', | |
parent_id: rootContent.id, | |
}), | |
}); | |
const responseBody = await response.json(); | |
expect(response.status).toEqual(201); | |
expect(responseBody).toStrictEqual({ | |
id: responseBody.id, | |
owner_id: defaultUser.id, | |
parent_id: rootContent.id, | |
slug: responseBody.slug, | |
title: null, | |
body: 'Deveria conseguir, pois atualmente todos os usuários recebem todas as features relacionadas a "content".', | |
status: 'draft', | |
source_url: null, | |
created_at: responseBody.created_at, | |
updated_at: responseBody.updated_at, | |
published_at: null, | |
deleted_at: null, | |
tabcoins: 0, | |
owner_username: defaultUser.username, | |
}); | |
expect(uuidVersion(responseBody.id)).toEqual(4); | |
expect(uuidVersion(responseBody.slug)).toEqual(4); | |
expect(Date.parse(responseBody.created_at)).not.toEqual(NaN); | |
expect(Date.parse(responseBody.updated_at)).not.toEqual(NaN); | |
}); |
Não sei como ficaria com os outros métodos e tem outras coisas que eu gostaria de testar ainda sobre essa ideia, mas eu gostaria de deixar registrado esse rabisco. De qualquer fora, por hora vou me focar em conseguir concluir a Milestone antes de entrar numa issue grande e mega importante como essa 🤝 😍
@gabrielsozinho, obrigado pelo PR! 💪 Registrei a existência dele na issue sobre a documentação da API (#555), então esse trabalho pode ser aproveitado em um PR atualizado. Vou fechar esse por enquanto. 👍 |
A tag
<details>
serve para ocultar o texto e apenas exibir quando<summary>
for clicado.exemplo:
clique aqui para exibir
exibindo tudo
Além disso, organizei toda a parte da documentação.