Skip to content

feat: mescla o upstream 8.4 (Laravel 13) - #9

Merged
andrewalkermo merged 17 commits into
masterfrom
upstream-8.4
Oct 15, 2026
Merged

andrewalkermo merged 17 commits into
masterfrom
upstream-8.4

Conversation

@andrewalkermo

Copy link
Copy Markdown

O que muda

Mescla a tag 8.4 do upstream (jdavidbakr/mail-tracker) preservando as customizações do fork:

  • conteúdo em tabela separada;
  • nomes de tabela configuráveis;
  • coluna mailable;
  • registro assíncrono de abertura e clique;
  • incremento atômico;
  • sanitização de URLs.

Do upstream vêm:

  • suporte ao Laravel 13 e ao PHP 8.5 (illuminate/support ^13, guzzle ^8, aws/aws-sdk-php ^3.372);
  • atributo data-dont-track;
  • ValidateSignature que redireciona quando faltam h ou l e aceita tel: e mailto:;
  • workflow de testes do GitHub Actions.

Conflito

Só em tests/MailTrackerTest.php, no mesmo ponto: ficam os dois testes do fork (sanitização de links) e os dois do upstream (provider de links e redirecionamento assinado). Os do fork passam a usar #[Test], como o resto do arquivo no upstream.

Testes corrigidos

Quatro testes já falhavam na master do fork desde o registro assíncrono de abertura e clique (fd1c315):

  • RecordLinkClickJobTest e RecordTrackingJobTest construíam os jobs sem o horário. Agora passam o horário e conferem a gravação de clicked_at e opened_at.
  • testPing e testLink esperavam a coluna gravada pelo controller. Agora conferem o horário levado pelo job.

Como testar

  • Pipeline do PR (matriz do upstream: PHP 8.2–8.5 × Laravel 10–13).
  • Localmente, no PHP 8.4: 58 testes OK com Laravel 13 (testbench ^11). Antes da correção dos testes, as mesmas 4 falhas aparecem com Laravel 12 e 13, e também na master.

vavedev and others added 17 commits July 26, 2025 10:38
Add validation for missing hash or URL in request
Widen the `guzzlehttp/guzzle` constraint so the package accepts Guzzle 8 in addition to the existing 7.x range.
Traz o suporte ao Laravel 13 e ao PHP 8.5 (illuminate/support ^13, guzzle ^8, aws-sdk-php ^3.372), o atributo data-dont-track e o ValidateSignature que aceita tel: e mailto:. No conflito de tests/MailTrackerTest.php ficam os testes do fork e os do upstream; os do fork passam a usar o atributo #[Test], como o restante do arquivo.
Desde o fd1c315, o opened_at e o clicked_at são gravados pelos jobs, com o horário recebido no construtor. Os testes dos jobs passam esse horário e conferem a gravação; os testes do controller conferem o horário levado pelo job, em vez da coluna, que só é gravada quando o job roda.
@andrewalkermo
andrewalkermo merged commit 89afd3f into master Oct 15, 2026
13 checks passed
@andrewalkermo
andrewalkermo deleted the upstream-8.4 branch October 15, 2026 21:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants