chore: reorganize para current/, rails 8.1, testes e readme

- move app para current/ (estrutura capistrano)
- rails 7.2 → 8.1, ruby 3.2, sqlite3 2.x
- adiciona primary_key Idinformativo no model
- schema.rb completo com todas as tabelas
- testes minitest: models (Tag, Informativo, Tema) e controllers
- readme atualizado em pt-br com stack e instruções de desenvolvimento
- gitignore exclui dump.sql, *.duckdb e sqlite3
This commit is contained in:
2026-06-18 18:58:01 +02:00
parent 691ed8e7e5
commit 25832564f9
132 changed files with 2067 additions and 1253 deletions

View File

@@ -0,0 +1,28 @@
require "test_helper"
class InformativoTest < ActiveSupport::TestCase
test "creates with titulo and sets Datainc automatically" do
info = Informativo.create!(titulo: "Novo artigo ambiental")
assert_not_nil info.Datainc
assert_not_nil info.Idinformativo
end
test "does not overwrite an existing Datainc" do
date = Date.new(2010, 6, 1)
info = Informativo.create!(titulo: "Artigo antigo", Datainc: date)
assert_equal date, info.Datainc
end
test "to_html renders markdown column as HTML" do
info = Informativo.create!(titulo: "Test", markdown: "## Título\nConteúdo")
html = info.to_html
assert_includes html, "<h2>"
assert_includes html, "Título"
end
test "temas returns matching tema names" do
tema = Tema.create!(cod_tema: 7, tema: "Energia", padrao: "Energia Renovável", count: 0)
info = Informativo.create!(titulo: "Solar", tema1: 7)
assert_includes info.temas, tema.tema
end
end

View File

@@ -0,0 +1,27 @@
require "test_helper"
class TagTest < ActiveSupport::TestCase
test "parameterize sets param on save" do
tag = Tag.create!(nome: "Energia Solar")
assert_equal "energia-solar", tag.param
end
test "strips whitespace from nome before save" do
tag = Tag.create!(nome: " mata ciliar ")
assert_equal "mata ciliar", tag.nome
end
test "nome uniqueness is enforced" do
Tag.create!(nome: "floresta")
dup = Tag.new(nome: "floresta")
assert_not dup.valid?
end
test "top returns at most 80 tags ordered by count desc" do
Tag.create!(nome: "tag-a", param: "tag-a", count: 100)
Tag.create!(nome: "tag-b", param: "tag-b", count: 5)
result = Tag.top
assert result.first.count >= result.last.count
assert result.size <= 80
end
end

View File

@@ -0,0 +1,22 @@
require "test_helper"
class TemaTest < ActiveSupport::TestCase
test "informativos returns articles linked to this tema" do
tema = Tema.create!(cod_tema: 3, tema: "Clima", padrao: "Mudanças Climáticas", count: 0)
info = Informativo.create!(titulo: "IPCC 2010", tema1: 3)
assert_includes tema.informativos, info
end
test "infos returns only root temas with padrao, sorted by count desc" do
Tema.create!(cod_tema: 1, cod_tema_sub: 0, padrao: "Legislação", count: 500)
Tema.create!(cod_tema: 2, cod_tema_sub: 0, padrao: "Fauna e Flora", count: 200)
Tema.create!(cod_tema: 3, cod_tema_sub: 1, padrao: "Subtema", count: 999)
result = Tema.infos
names = result.map(&:first)
assert_includes names, "Legislação"
assert_includes names, "Fauna e Flora"
assert_not_includes names, "Subtema"
assert result.first[1] >= result.last[1]
end
end