Skip to content

test(mail): characterize production email contracts - #2526

Merged
niemyjski merged 12 commits into
mainfrom
feature/email-template-contract-tests
Aug 27, 2026
Merged

test(mail): characterize production email contracts#2526
niemyjski merged 12 commits into
mainfrom
feature/email-template-contract-tests

Conversation

@niemyjski

@niemyjski niemyjski commented Aug 25, 2026

Copy link
Copy Markdown
Member

Summary

  • hardens production email rendering contracts across the nine mail templates
  • serializes Subject at the JSON-LD boundary so quoted or control characters remain valid JSON while the visible HTML subject is unchanged
  • preserves mailbox syntax when building event mailto: links, including quoted local parts and encoded bodies
  • keeps generated templates and source templates in sync
  • characterizes rendered content, HTML links, and parsed JSON-LD without hardcoding every destination URL in the mailer tests

The subject handling follows the W3C JSON-LD 1.1 specification for JSON-LD embedded in HTML and RFC 8259 for JSON string escaping. This is context-specific JSON serialization, not a separate subject representation.

Verification

  • dotnet build tests/Exceptionless.Tests/Exceptionless.Tests.csproj --no-restore --disable-build-servers -m:1 — 0 warnings, 0 errors
  • dotnet test tests/Exceptionless.Tests/Exceptionless.Tests.csproj --no-build --no-restore --filter FullyQualifiedName~Exceptionless.Tests.Mail.MailerTests — 30 passed
  • git diff --check — clean
  • Full suite attempted; the local shared Elasticsearch test index raced during startup, causing 82 infrastructure failures (test-users alias/index conflict and fielddata errors). No mailer tests failed.

Post-Deploy Monitoring & Validation

After deployment, verify representative email rendering and structured-data parsing for event notices, organization notifications, project summaries, password resets, and email verification messages.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 18157c9300

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread tests/Exceptionless.Tests/Mail/MailerTests.cs Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: d64336d454

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread tests/Exceptionless.Tests/Mail/MailerTests.cs

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 5b6a0805ea

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread tests/Exceptionless.Tests/Mail/MailerTests.cs Outdated
Comment thread tests/Exceptionless.Tests/Mail/MailerTests.cs Outdated
@niemyjski niemyjski self-assigned this Aug 27, 2026

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 2c4d518c2d

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/Exceptionless.Core/Mail/Mailer.cs Outdated
@niemyjski
niemyjski force-pushed the feature/email-template-contract-tests branch from 2c4d518 to e01a204 Compare August 27, 2026 11:34

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: e01a204eaf

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread tests/Exceptionless.Tests/Mail/MailerTests.cs
Comment thread src/Exceptionless.Core/Mail/Mailer.cs Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: f68c47a0b4

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread tests/Exceptionless.Tests/Mail/MailerTests.cs
Comment thread tests/Exceptionless.Tests/Mail/MailerTests.cs

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 2838463268

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread tests/Exceptionless.Tests/Mail/MailerTests.cs
@niemyjski
niemyjski requested a review from ejsmith August 27, 2026 12:36
@niemyjski
niemyjski merged commit 5cb6b59 into main Aug 27, 2026
7 checks passed
@niemyjski
niemyjski deleted the feature/email-template-contract-tests branch August 27, 2026 12:37
@github-actions

Copy link
Copy Markdown

Code Coverage

Package Line Rate Branch Rate Complexity Health
Exceptionless.Insulation 37% 35% 286
Exceptionless.Core 76% 67% 10288
Exceptionless.Web 85% 69% 7974
Exceptionless.AppHost 38% 41% 147
Summary 79% (25546 / 32524) 67% (11960 / 17719) 18695

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.

1 participant