Constrain Test column width in grade-tests PR comment - #8961

Merged
Amaury Levé (Evangelink) merged 2 commits into
microsoft:mainfrom
Evangelink:dev/amauryleve/grade-tests-table-width
Jun 9, 2026
Merged

Constrain Test column width in grade-tests PR comment#8961
Amaury Levé (Evangelink) merged 2 commits into
microsoft:mainfrom
Evangelink:dev/amauryleve/grade-tests-table-width

Conversation

@Evangelink

Copy link
Copy Markdown
Member

Fixes the horizontal-scroll problem in the test-quality grade PR comment that the bot posts when a PR touches tests.

Before

The bot rendered a markdown pipe-table where the Test column put the fully-qualified test name (Namespace.ClassName.MethodName) inside backticks. GitHub renders backtick spans as non-wrapping <code>, so long MSTest names overflowed the PR-comment width and forced a horizontal scroll bar.

After

  • Switch the table from a markdown pipe-table to a raw HTML <table> with a <colgroup> that caps each column to a fixed percentage of the comment width (6% / 50% / 7% / 9% / 28%). GitHub's HTML sanitizer honors the width attribute on <table>, <col>, <th>, and <td>, so the columns stay within the PR-comment width.
  • Drop the namespace prefix from the displayed name (show ClassName.MethodName, never Namespace.ClassName.MethodName). Disambiguation moves to Notes if two graded methods would otherwise collide.
  • Use raw <code>…</code> HTML tags instead of backtick spans so nested <wbr> actually takes effect (backtick code spans render content literally in GFM, so a <wbr> inside backticks would display as the literal text <wbr>).
  • Inject invisible <wbr> soft-wrap hints after each _ in long PascalCase MSTest names so the constrained 50%-wide cell can actually wrap on long names like TestNodeResultsState_GetSingleActiveOrSummaryTask_WhenEmpty_ReturnsNull. <wbr> does not change what copy-paste yields.
  • Promote the (new) / (modified) marker out of the Test cell into its own narrow first column so it no longer competes for the cell width.

Files changed

  • .github/workflows/shared/grade-tests-shared.md — Step 4 ("Post the comment")

The two consumer workflows (grade-tests-on-pr.agent.md and grade-tests.agent.md) pull this body at runtime via {{#runtime-import …}}, so the .lock.yml files do not change.

Validation

  • gh aw compile grade-tests-on-pr.agent grade-tests.agent --strict → 0 errors, 0 warnings.

Switch the table from a markdown pipe-table to a raw HTML <table> with a <colgroup> that caps each column to a fixed percentage of the comment width (6 / 50 / 7 / 9 / 28). GitHub's HTML sanitizer honors the width attribute on <table>, <col>, <th>, and <td>, so the columns now stay within the PR-comment width without the horizontal scroll bar that long fully-qualified MSTest names previously triggered.
Cell contents are still made wrap-friendly: drop the namespace, use raw <code>…</code> (so nested <wbr> actually takes effect instead of rendering literally inside backtick code spans), and inject <wbr> soft-wrap hints after each underscore in long PascalCase MSTest names. <wbr> is invisible and does not change what copy-paste yields.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings June 9, 2026 09:59

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Updates the shared grade-tests workflow guidance so the bot’s PR comment renders without horizontal scrolling when test names are long, by switching from a Markdown pipe-table to a constrained-width HTML table and by adding soft-wrap hints within <code>.

Changes:

  • Replaces the Markdown pipe-table example with an HTML <table> using a fixed-width <colgroup> layout.
  • Updates the table rules to require HTML <table> output and to display shortened test names (dropping namespaces) with <wbr> wrap hints.
Show a summary per file
FileDescription
.github/workflows/shared/grade-tests-shared.mdChanges the “Post the comment” guidance to use a fixed-width HTML table and wrap-friendly <code> content to prevent horizontal scrolling.

Copilot's findings

  • Files reviewed: 1/1 changed files
  • Comments generated: 3

Comment thread.github/workflows/shared/grade-tests-shared.md Outdated
Comment thread.github/workflows/shared/grade-tests-shared.md Outdated
Comment thread.github/workflows/shared/grade-tests-shared.md Outdated
- Make the example test cell consistent with the rule (break only after underscores). Use a more realistic method name Method_WhenSomething_ReturnsValue rather than the abbreviated Method_WhenX_ReturnsY that previously inserted <wbr> mid-word.
- Drop the PascalCase clause from the <wbr> insertion rule. Underscores alone are sufficient for typical MSTest naming (Method_Scenario_Expectation), and keeping the rule about underscores only matches both examples and avoids the agent inventing PascalCase break points.
- Give the first column a screen-reader-visible header. Use 'Δ' (change indicator) so the column is no longer anonymous to assistive technology while staying narrow.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@Evangelink
Amaury Levé (Evangelink) enabled auto-merge (squash) June 9, 2026 11:56
@Evangelink
Amaury Levé (Evangelink) merged commit 2615f8b into microsoft:mainJun 9, 2026
39 checks passed
@Evangelink
Amaury Levé (Evangelink) deleted the dev/amauryleve/grade-tests-table-width branch June 9, 2026 12:17
Sign up for freeto 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.

3 participants

@Evangelink@azat-msft
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Constrain Test column width in grade-tests PR comment - #8961

Merged
Amaury Levé (Evangelink) merged 2 commits into
microsoft:mainfrom
Evangelink:dev/amauryleve/grade-tests-table-width
Jun 9, 2026
Merged

Constrain Test column width in grade-tests PR comment#8961
Amaury Levé (Evangelink) merged 2 commits into
microsoft:mainfrom
Evangelink:dev/amauryleve/grade-tests-table-width

Conversation

@Evangelink

Copy link
Copy Markdown
Member

Fixes the horizontal-scroll problem in the test-quality grade PR comment that the bot posts when a PR touches tests.

Before

The bot rendered a markdown pipe-table where the Test column put the fully-qualified test name (Namespace.ClassName.MethodName) inside backticks. GitHub renders backtick spans as non-wrapping <code>, so long MSTest names overflowed the PR-comment width and forced a horizontal scroll bar.

After

  • Switch the table from a markdown pipe-table to a raw HTML <table> with a <colgroup> that caps each column to a fixed percentage of the comment width (6% / 50% / 7% / 9% / 28%). GitHub's HTML sanitizer honors the width attribute on <table>, <col>, <th>, and <td>, so the columns stay within the PR-comment width.
  • Drop the namespace prefix from the displayed name (show ClassName.MethodName, never Namespace.ClassName.MethodName). Disambiguation moves to Notes if two graded methods would otherwise collide.
  • Use raw <code>…</code> HTML tags instead of backtick spans so nested <wbr> actually takes effect (backtick code spans render content literally in GFM, so a <wbr> inside backticks would display as the literal text <wbr>).
  • Inject invisible <wbr> soft-wrap hints after each _ in long PascalCase MSTest names so the constrained 50%-wide cell can actually wrap on long names like TestNodeResultsState_GetSingleActiveOrSummaryTask_WhenEmpty_ReturnsNull. <wbr> does not change what copy-paste yields.
  • Promote the (new) / (modified) marker out of the Test cell into its own narrow first column so it no longer competes for the cell width.

Files changed

  • .github/workflows/shared/grade-tests-shared.md — Step 4 ("Post the comment")

The two consumer workflows (grade-tests-on-pr.agent.md and grade-tests.agent.md) pull this body at runtime via {{#runtime-import …}}, so the .lock.yml files do not change.

Validation

  • gh aw compile grade-tests-on-pr.agent grade-tests.agent --strict → 0 errors, 0 warnings.

Switch the table from a markdown pipe-table to a raw HTML <table> with a <colgroup> that caps each column to a fixed percentage of the comment width (6 / 50 / 7 / 9 / 28). GitHub's HTML sanitizer honors the width attribute on <table>, <col>, <th>, and <td>, so the columns now stay within the PR-comment width without the horizontal scroll bar that long fully-qualified MSTest names previously triggered.
Cell contents are still made wrap-friendly: drop the namespace, use raw <code>…</code> (so nested <wbr> actually takes effect instead of rendering literally inside backtick code spans), and inject <wbr> soft-wrap hints after each underscore in long PascalCase MSTest names. <wbr> is invisible and does not change what copy-paste yields.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings June 9, 2026 09:59

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Updates the shared grade-tests workflow guidance so the bot’s PR comment renders without horizontal scrolling when test names are long, by switching from a Markdown pipe-table to a constrained-width HTML table and by adding soft-wrap hints within <code>.

Changes:

  • Replaces the Markdown pipe-table example with an HTML <table> using a fixed-width <colgroup> layout.
  • Updates the table rules to require HTML <table> output and to display shortened test names (dropping namespaces) with <wbr> wrap hints.
Show a summary per file
FileDescription
.github/workflows/shared/grade-tests-shared.mdChanges the “Post the comment” guidance to use a fixed-width HTML table and wrap-friendly <code> content to prevent horizontal scrolling.

Copilot's findings

  • Files reviewed: 1/1 changed files
  • Comments generated: 3

Comment thread.github/workflows/shared/grade-tests-shared.md Outdated
Comment thread.github/workflows/shared/grade-tests-shared.md Outdated
Comment thread.github/workflows/shared/grade-tests-shared.md Outdated
- Make the example test cell consistent with the rule (break only after underscores). Use a more realistic method name Method_WhenSomething_ReturnsValue rather than the abbreviated Method_WhenX_ReturnsY that previously inserted <wbr> mid-word.
- Drop the PascalCase clause from the <wbr> insertion rule. Underscores alone are sufficient for typical MSTest naming (Method_Scenario_Expectation), and keeping the rule about underscores only matches both examples and avoids the agent inventing PascalCase break points.
- Give the first column a screen-reader-visible header. Use 'Δ' (change indicator) so the column is no longer anonymous to assistive technology while staying narrow.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@Evangelink
Amaury Levé (Evangelink) enabled auto-merge (squash) June 9, 2026 11:56
@Evangelink
Amaury Levé (Evangelink) merged commit 2615f8b into microsoft:mainJun 9, 2026
39 checks passed
@Evangelink
Amaury Levé (Evangelink) deleted the dev/amauryleve/grade-tests-table-width branch June 9, 2026 12:17
Sign up for freeto 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.

3 participants

@Evangelink@azat-msft
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Constrain Test column width in grade-tests PR comment - #8961

Merged
Amaury Levé (Evangelink) merged 2 commits into
microsoft:mainfrom
Evangelink:dev/amauryleve/grade-tests-table-width
Jun 9, 2026
Merged

Constrain Test column width in grade-tests PR comment#8961
Amaury Levé (Evangelink) merged 2 commits into
microsoft:mainfrom
Evangelink:dev/amauryleve/grade-tests-table-width

Conversation

@Evangelink

Copy link
Copy Markdown
Member

Fixes the horizontal-scroll problem in the test-quality grade PR comment that the bot posts when a PR touches tests.

Before

The bot rendered a markdown pipe-table where the Test column put the fully-qualified test name (Namespace.ClassName.MethodName) inside backticks. GitHub renders backtick spans as non-wrapping <code>, so long MSTest names overflowed the PR-comment width and forced a horizontal scroll bar.

After

  • Switch the table from a markdown pipe-table to a raw HTML <table> with a <colgroup> that caps each column to a fixed percentage of the comment width (6% / 50% / 7% / 9% / 28%). GitHub's HTML sanitizer honors the width attribute on <table>, <col>, <th>, and <td>, so the columns stay within the PR-comment width.
  • Drop the namespace prefix from the displayed name (show ClassName.MethodName, never Namespace.ClassName.MethodName). Disambiguation moves to Notes if two graded methods would otherwise collide.
  • Use raw <code>…</code> HTML tags instead of backtick spans so nested <wbr> actually takes effect (backtick code spans render content literally in GFM, so a <wbr> inside backticks would display as the literal text <wbr>).
  • Inject invisible <wbr> soft-wrap hints after each _ in long PascalCase MSTest names so the constrained 50%-wide cell can actually wrap on long names like TestNodeResultsState_GetSingleActiveOrSummaryTask_WhenEmpty_ReturnsNull. <wbr> does not change what copy-paste yields.
  • Promote the (new) / (modified) marker out of the Test cell into its own narrow first column so it no longer competes for the cell width.

Files changed

  • .github/workflows/shared/grade-tests-shared.md — Step 4 ("Post the comment")

The two consumer workflows (grade-tests-on-pr.agent.md and grade-tests.agent.md) pull this body at runtime via {{#runtime-import …}}, so the .lock.yml files do not change.

Validation

  • gh aw compile grade-tests-on-pr.agent grade-tests.agent --strict → 0 errors, 0 warnings.

Switch the table from a markdown pipe-table to a raw HTML <table> with a <colgroup> that caps each column to a fixed percentage of the comment width (6 / 50 / 7 / 9 / 28). GitHub's HTML sanitizer honors the width attribute on <table>, <col>, <th>, and <td>, so the columns now stay within the PR-comment width without the horizontal scroll bar that long fully-qualified MSTest names previously triggered.
Cell contents are still made wrap-friendly: drop the namespace, use raw <code>…</code> (so nested <wbr> actually takes effect instead of rendering literally inside backtick code spans), and inject <wbr> soft-wrap hints after each underscore in long PascalCase MSTest names. <wbr> is invisible and does not change what copy-paste yields.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings June 9, 2026 09:59

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Updates the shared grade-tests workflow guidance so the bot’s PR comment renders without horizontal scrolling when test names are long, by switching from a Markdown pipe-table to a constrained-width HTML table and by adding soft-wrap hints within <code>.

Changes:

  • Replaces the Markdown pipe-table example with an HTML <table> using a fixed-width <colgroup> layout.
  • Updates the table rules to require HTML <table> output and to display shortened test names (dropping namespaces) with <wbr> wrap hints.
Show a summary per file
FileDescription
.github/workflows/shared/grade-tests-shared.mdChanges the “Post the comment” guidance to use a fixed-width HTML table and wrap-friendly <code> content to prevent horizontal scrolling.

Copilot's findings

  • Files reviewed: 1/1 changed files
  • Comments generated: 3

Comment thread.github/workflows/shared/grade-tests-shared.md Outdated
Comment thread.github/workflows/shared/grade-tests-shared.md Outdated
Comment thread.github/workflows/shared/grade-tests-shared.md Outdated
- Make the example test cell consistent with the rule (break only after underscores). Use a more realistic method name Method_WhenSomething_ReturnsValue rather than the abbreviated Method_WhenX_ReturnsY that previously inserted <wbr> mid-word.
- Drop the PascalCase clause from the <wbr> insertion rule. Underscores alone are sufficient for typical MSTest naming (Method_Scenario_Expectation), and keeping the rule about underscores only matches both examples and avoids the agent inventing PascalCase break points.
- Give the first column a screen-reader-visible header. Use 'Δ' (change indicator) so the column is no longer anonymous to assistive technology while staying narrow.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@Evangelink
Amaury Levé (Evangelink) enabled auto-merge (squash) June 9, 2026 11:56
@Evangelink
Amaury Levé (Evangelink) merged commit 2615f8b into microsoft:mainJun 9, 2026
39 checks passed
@Evangelink
Amaury Levé (Evangelink) deleted the dev/amauryleve/grade-tests-table-width branch June 9, 2026 12:17
Sign up for freeto 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.

3 participants

@Evangelink@azat-msft
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Constrain Test column width in grade-tests PR comment - #8961

Merged
Amaury Levé (Evangelink) merged 2 commits into
microsoft:mainfrom
Evangelink:dev/amauryleve/grade-tests-table-width
Jun 9, 2026
Merged

Constrain Test column width in grade-tests PR comment#8961
Amaury Levé (Evangelink) merged 2 commits into
microsoft:mainfrom
Evangelink:dev/amauryleve/grade-tests-table-width

Conversation

@Evangelink

Copy link
Copy Markdown
Member

Fixes the horizontal-scroll problem in the test-quality grade PR comment that the bot posts when a PR touches tests.

Before

The bot rendered a markdown pipe-table where the Test column put the fully-qualified test name (Namespace.ClassName.MethodName) inside backticks. GitHub renders backtick spans as non-wrapping <code>, so long MSTest names overflowed the PR-comment width and forced a horizontal scroll bar.

After

  • Switch the table from a markdown pipe-table to a raw HTML <table> with a <colgroup> that caps each column to a fixed percentage of the comment width (6% / 50% / 7% / 9% / 28%). GitHub's HTML sanitizer honors the width attribute on <table>, <col>, <th>, and <td>, so the columns stay within the PR-comment width.
  • Drop the namespace prefix from the displayed name (show ClassName.MethodName, never Namespace.ClassName.MethodName). Disambiguation moves to Notes if two graded methods would otherwise collide.
  • Use raw <code>…</code> HTML tags instead of backtick spans so nested <wbr> actually takes effect (backtick code spans render content literally in GFM, so a <wbr> inside backticks would display as the literal text <wbr>).
  • Inject invisible <wbr> soft-wrap hints after each _ in long PascalCase MSTest names so the constrained 50%-wide cell can actually wrap on long names like TestNodeResultsState_GetSingleActiveOrSummaryTask_WhenEmpty_ReturnsNull. <wbr> does not change what copy-paste yields.
  • Promote the (new) / (modified) marker out of the Test cell into its own narrow first column so it no longer competes for the cell width.

Files changed

  • .github/workflows/shared/grade-tests-shared.md — Step 4 ("Post the comment")

The two consumer workflows (grade-tests-on-pr.agent.md and grade-tests.agent.md) pull this body at runtime via {{#runtime-import …}}, so the .lock.yml files do not change.

Validation

  • gh aw compile grade-tests-on-pr.agent grade-tests.agent --strict → 0 errors, 0 warnings.

Switch the table from a markdown pipe-table to a raw HTML <table> with a <colgroup> that caps each column to a fixed percentage of the comment width (6 / 50 / 7 / 9 / 28). GitHub's HTML sanitizer honors the width attribute on <table>, <col>, <th>, and <td>, so the columns now stay within the PR-comment width without the horizontal scroll bar that long fully-qualified MSTest names previously triggered.
Cell contents are still made wrap-friendly: drop the namespace, use raw <code>…</code> (so nested <wbr> actually takes effect instead of rendering literally inside backtick code spans), and inject <wbr> soft-wrap hints after each underscore in long PascalCase MSTest names. <wbr> is invisible and does not change what copy-paste yields.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings June 9, 2026 09:59

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Updates the shared grade-tests workflow guidance so the bot’s PR comment renders without horizontal scrolling when test names are long, by switching from a Markdown pipe-table to a constrained-width HTML table and by adding soft-wrap hints within <code>.

Changes:

  • Replaces the Markdown pipe-table example with an HTML <table> using a fixed-width <colgroup> layout.
  • Updates the table rules to require HTML <table> output and to display shortened test names (dropping namespaces) with <wbr> wrap hints.
Show a summary per file
FileDescription
.github/workflows/shared/grade-tests-shared.mdChanges the “Post the comment” guidance to use a fixed-width HTML table and wrap-friendly <code> content to prevent horizontal scrolling.

Copilot's findings

  • Files reviewed: 1/1 changed files
  • Comments generated: 3

Comment thread.github/workflows/shared/grade-tests-shared.md Outdated
Comment thread.github/workflows/shared/grade-tests-shared.md Outdated
Comment thread.github/workflows/shared/grade-tests-shared.md Outdated
- Make the example test cell consistent with the rule (break only after underscores). Use a more realistic method name Method_WhenSomething_ReturnsValue rather than the abbreviated Method_WhenX_ReturnsY that previously inserted <wbr> mid-word.
- Drop the PascalCase clause from the <wbr> insertion rule. Underscores alone are sufficient for typical MSTest naming (Method_Scenario_Expectation), and keeping the rule about underscores only matches both examples and avoids the agent inventing PascalCase break points.
- Give the first column a screen-reader-visible header. Use 'Δ' (change indicator) so the column is no longer anonymous to assistive technology while staying narrow.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@Evangelink
Amaury Levé (Evangelink) enabled auto-merge (squash) June 9, 2026 11:56
@Evangelink
Amaury Levé (Evangelink) merged commit 2615f8b into microsoft:mainJun 9, 2026
39 checks passed
@Evangelink
Amaury Levé (Evangelink) deleted the dev/amauryleve/grade-tests-table-width branch June 9, 2026 12:17
Sign up for freeto 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.

3 participants

@Evangelink@azat-msft
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Constrain Test column width in grade-tests PR comment - #8961

Merged
Amaury Levé (Evangelink) merged 2 commits into
microsoft:mainfrom
Evangelink:dev/amauryleve/grade-tests-table-width
Jun 9, 2026
Merged

Constrain Test column width in grade-tests PR comment#8961
Amaury Levé (Evangelink) merged 2 commits into
microsoft:mainfrom
Evangelink:dev/amauryleve/grade-tests-table-width

Conversation

@Evangelink

Copy link
Copy Markdown
Member

Fixes the horizontal-scroll problem in the test-quality grade PR comment that the bot posts when a PR touches tests.

Before

The bot rendered a markdown pipe-table where the Test column put the fully-qualified test name (Namespace.ClassName.MethodName) inside backticks. GitHub renders backtick spans as non-wrapping <code>, so long MSTest names overflowed the PR-comment width and forced a horizontal scroll bar.

After

  • Switch the table from a markdown pipe-table to a raw HTML <table> with a <colgroup> that caps each column to a fixed percentage of the comment width (6% / 50% / 7% / 9% / 28%). GitHub's HTML sanitizer honors the width attribute on <table>, <col>, <th>, and <td>, so the columns stay within the PR-comment width.
  • Drop the namespace prefix from the displayed name (show ClassName.MethodName, never Namespace.ClassName.MethodName). Disambiguation moves to Notes if two graded methods would otherwise collide.
  • Use raw <code>…</code> HTML tags instead of backtick spans so nested <wbr> actually takes effect (backtick code spans render content literally in GFM, so a <wbr> inside backticks would display as the literal text <wbr>).
  • Inject invisible <wbr> soft-wrap hints after each _ in long PascalCase MSTest names so the constrained 50%-wide cell can actually wrap on long names like TestNodeResultsState_GetSingleActiveOrSummaryTask_WhenEmpty_ReturnsNull. <wbr> does not change what copy-paste yields.
  • Promote the (new) / (modified) marker out of the Test cell into its own narrow first column so it no longer competes for the cell width.

Files changed

  • .github/workflows/shared/grade-tests-shared.md — Step 4 ("Post the comment")

The two consumer workflows (grade-tests-on-pr.agent.md and grade-tests.agent.md) pull this body at runtime via {{#runtime-import …}}, so the .lock.yml files do not change.

Validation

  • gh aw compile grade-tests-on-pr.agent grade-tests.agent --strict → 0 errors, 0 warnings.

Switch the table from a markdown pipe-table to a raw HTML <table> with a <colgroup> that caps each column to a fixed percentage of the comment width (6 / 50 / 7 / 9 / 28). GitHub's HTML sanitizer honors the width attribute on <table>, <col>, <th>, and <td>, so the columns now stay within the PR-comment width without the horizontal scroll bar that long fully-qualified MSTest names previously triggered.
Cell contents are still made wrap-friendly: drop the namespace, use raw <code>…</code> (so nested <wbr> actually takes effect instead of rendering literally inside backtick code spans), and inject <wbr> soft-wrap hints after each underscore in long PascalCase MSTest names. <wbr> is invisible and does not change what copy-paste yields.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings June 9, 2026 09:59

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Updates the shared grade-tests workflow guidance so the bot’s PR comment renders without horizontal scrolling when test names are long, by switching from a Markdown pipe-table to a constrained-width HTML table and by adding soft-wrap hints within <code>.

Changes:

  • Replaces the Markdown pipe-table example with an HTML <table> using a fixed-width <colgroup> layout.
  • Updates the table rules to require HTML <table> output and to display shortened test names (dropping namespaces) with <wbr> wrap hints.
Show a summary per file
FileDescription
.github/workflows/shared/grade-tests-shared.mdChanges the “Post the comment” guidance to use a fixed-width HTML table and wrap-friendly <code> content to prevent horizontal scrolling.

Copilot's findings

  • Files reviewed: 1/1 changed files
  • Comments generated: 3

Comment thread.github/workflows/shared/grade-tests-shared.md Outdated
Comment thread.github/workflows/shared/grade-tests-shared.md Outdated
Comment thread.github/workflows/shared/grade-tests-shared.md Outdated
- Make the example test cell consistent with the rule (break only after underscores). Use a more realistic method name Method_WhenSomething_ReturnsValue rather than the abbreviated Method_WhenX_ReturnsY that previously inserted <wbr> mid-word.
- Drop the PascalCase clause from the <wbr> insertion rule. Underscores alone are sufficient for typical MSTest naming (Method_Scenario_Expectation), and keeping the rule about underscores only matches both examples and avoids the agent inventing PascalCase break points.
- Give the first column a screen-reader-visible header. Use 'Δ' (change indicator) so the column is no longer anonymous to assistive technology while staying narrow.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@Evangelink
Amaury Levé (Evangelink) enabled auto-merge (squash) June 9, 2026 11:56
@Evangelink
Amaury Levé (Evangelink) merged commit 2615f8b into microsoft:mainJun 9, 2026
39 checks passed
@Evangelink
Amaury Levé (Evangelink) deleted the dev/amauryleve/grade-tests-table-width branch June 9, 2026 12:17
Sign up for freeto 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.

3 participants

@Evangelink@azat-msft
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Constrain Test column width in grade-tests PR comment - #8961

Merged
Amaury Levé (Evangelink) merged 2 commits into
microsoft:mainfrom
Evangelink:dev/amauryleve/grade-tests-table-width
Jun 9, 2026
Merged

Constrain Test column width in grade-tests PR comment#8961
Amaury Levé (Evangelink) merged 2 commits into
microsoft:mainfrom
Evangelink:dev/amauryleve/grade-tests-table-width

Conversation

@Evangelink

Copy link
Copy Markdown
Member

Fixes the horizontal-scroll problem in the test-quality grade PR comment that the bot posts when a PR touches tests.

Before

The bot rendered a markdown pipe-table where the Test column put the fully-qualified test name (Namespace.ClassName.MethodName) inside backticks. GitHub renders backtick spans as non-wrapping <code>, so long MSTest names overflowed the PR-comment width and forced a horizontal scroll bar.

After

  • Switch the table from a markdown pipe-table to a raw HTML <table> with a <colgroup> that caps each column to a fixed percentage of the comment width (6% / 50% / 7% / 9% / 28%). GitHub's HTML sanitizer honors the width attribute on <table>, <col>, <th>, and <td>, so the columns stay within the PR-comment width.
  • Drop the namespace prefix from the displayed name (show ClassName.MethodName, never Namespace.ClassName.MethodName). Disambiguation moves to Notes if two graded methods would otherwise collide.
  • Use raw <code>…</code> HTML tags instead of backtick spans so nested <wbr> actually takes effect (backtick code spans render content literally in GFM, so a <wbr> inside backticks would display as the literal text <wbr>).
  • Inject invisible <wbr> soft-wrap hints after each _ in long PascalCase MSTest names so the constrained 50%-wide cell can actually wrap on long names like TestNodeResultsState_GetSingleActiveOrSummaryTask_WhenEmpty_ReturnsNull. <wbr> does not change what copy-paste yields.
  • Promote the (new) / (modified) marker out of the Test cell into its own narrow first column so it no longer competes for the cell width.

Files changed

  • .github/workflows/shared/grade-tests-shared.md — Step 4 ("Post the comment")

The two consumer workflows (grade-tests-on-pr.agent.md and grade-tests.agent.md) pull this body at runtime via {{#runtime-import …}}, so the .lock.yml files do not change.

Validation

  • gh aw compile grade-tests-on-pr.agent grade-tests.agent --strict → 0 errors, 0 warnings.

Switch the table from a markdown pipe-table to a raw HTML <table> with a <colgroup> that caps each column to a fixed percentage of the comment width (6 / 50 / 7 / 9 / 28). GitHub's HTML sanitizer honors the width attribute on <table>, <col>, <th>, and <td>, so the columns now stay within the PR-comment width without the horizontal scroll bar that long fully-qualified MSTest names previously triggered.
Cell contents are still made wrap-friendly: drop the namespace, use raw <code>…</code> (so nested <wbr> actually takes effect instead of rendering literally inside backtick code spans), and inject <wbr> soft-wrap hints after each underscore in long PascalCase MSTest names. <wbr> is invisible and does not change what copy-paste yields.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings June 9, 2026 09:59

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Updates the shared grade-tests workflow guidance so the bot’s PR comment renders without horizontal scrolling when test names are long, by switching from a Markdown pipe-table to a constrained-width HTML table and by adding soft-wrap hints within <code>.

Changes:

  • Replaces the Markdown pipe-table example with an HTML <table> using a fixed-width <colgroup> layout.
  • Updates the table rules to require HTML <table> output and to display shortened test names (dropping namespaces) with <wbr> wrap hints.
Show a summary per file
FileDescription
.github/workflows/shared/grade-tests-shared.mdChanges the “Post the comment” guidance to use a fixed-width HTML table and wrap-friendly <code> content to prevent horizontal scrolling.

Copilot's findings

  • Files reviewed: 1/1 changed files
  • Comments generated: 3

Comment thread.github/workflows/shared/grade-tests-shared.md Outdated
Comment thread.github/workflows/shared/grade-tests-shared.md Outdated
Comment thread.github/workflows/shared/grade-tests-shared.md Outdated
- Make the example test cell consistent with the rule (break only after underscores). Use a more realistic method name Method_WhenSomething_ReturnsValue rather than the abbreviated Method_WhenX_ReturnsY that previously inserted <wbr> mid-word.
- Drop the PascalCase clause from the <wbr> insertion rule. Underscores alone are sufficient for typical MSTest naming (Method_Scenario_Expectation), and keeping the rule about underscores only matches both examples and avoids the agent inventing PascalCase break points.
- Give the first column a screen-reader-visible header. Use 'Δ' (change indicator) so the column is no longer anonymous to assistive technology while staying narrow.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@Evangelink
Amaury Levé (Evangelink) enabled auto-merge (squash) June 9, 2026 11:56
@Evangelink
Amaury Levé (Evangelink) merged commit 2615f8b into microsoft:mainJun 9, 2026
39 checks passed
@Evangelink
Amaury Levé (Evangelink) deleted the dev/amauryleve/grade-tests-table-width branch June 9, 2026 12:17
Sign up for freeto 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.

3 participants

@Evangelink@azat-msft
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Constrain Test column width in grade-tests PR comment - #8961

Merged
Amaury Levé (Evangelink) merged 2 commits into
microsoft:mainfrom
Evangelink:dev/amauryleve/grade-tests-table-width
Jun 9, 2026
Merged

Constrain Test column width in grade-tests PR comment#8961
Amaury Levé (Evangelink) merged 2 commits into
microsoft:mainfrom
Evangelink:dev/amauryleve/grade-tests-table-width

Conversation

@Evangelink

Copy link
Copy Markdown
Member

Fixes the horizontal-scroll problem in the test-quality grade PR comment that the bot posts when a PR touches tests.

Before

The bot rendered a markdown pipe-table where the Test column put the fully-qualified test name (Namespace.ClassName.MethodName) inside backticks. GitHub renders backtick spans as non-wrapping <code>, so long MSTest names overflowed the PR-comment width and forced a horizontal scroll bar.

After

  • Switch the table from a markdown pipe-table to a raw HTML <table> with a <colgroup> that caps each column to a fixed percentage of the comment width (6% / 50% / 7% / 9% / 28%). GitHub's HTML sanitizer honors the width attribute on <table>, <col>, <th>, and <td>, so the columns stay within the PR-comment width.
  • Drop the namespace prefix from the displayed name (show ClassName.MethodName, never Namespace.ClassName.MethodName). Disambiguation moves to Notes if two graded methods would otherwise collide.
  • Use raw <code>…</code> HTML tags instead of backtick spans so nested <wbr> actually takes effect (backtick code spans render content literally in GFM, so a <wbr> inside backticks would display as the literal text <wbr>).
  • Inject invisible <wbr> soft-wrap hints after each _ in long PascalCase MSTest names so the constrained 50%-wide cell can actually wrap on long names like TestNodeResultsState_GetSingleActiveOrSummaryTask_WhenEmpty_ReturnsNull. <wbr> does not change what copy-paste yields.
  • Promote the (new) / (modified) marker out of the Test cell into its own narrow first column so it no longer competes for the cell width.

Files changed

  • .github/workflows/shared/grade-tests-shared.md — Step 4 ("Post the comment")

The two consumer workflows (grade-tests-on-pr.agent.md and grade-tests.agent.md) pull this body at runtime via {{#runtime-import …}}, so the .lock.yml files do not change.

Validation

  • gh aw compile grade-tests-on-pr.agent grade-tests.agent --strict → 0 errors, 0 warnings.

Switch the table from a markdown pipe-table to a raw HTML <table> with a <colgroup> that caps each column to a fixed percentage of the comment width (6 / 50 / 7 / 9 / 28). GitHub's HTML sanitizer honors the width attribute on <table>, <col>, <th>, and <td>, so the columns now stay within the PR-comment width without the horizontal scroll bar that long fully-qualified MSTest names previously triggered.
Cell contents are still made wrap-friendly: drop the namespace, use raw <code>…</code> (so nested <wbr> actually takes effect instead of rendering literally inside backtick code spans), and inject <wbr> soft-wrap hints after each underscore in long PascalCase MSTest names. <wbr> is invisible and does not change what copy-paste yields.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings June 9, 2026 09:59

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Updates the shared grade-tests workflow guidance so the bot’s PR comment renders without horizontal scrolling when test names are long, by switching from a Markdown pipe-table to a constrained-width HTML table and by adding soft-wrap hints within <code>.

Changes:

  • Replaces the Markdown pipe-table example with an HTML <table> using a fixed-width <colgroup> layout.
  • Updates the table rules to require HTML <table> output and to display shortened test names (dropping namespaces) with <wbr> wrap hints.
Show a summary per file
FileDescription
.github/workflows/shared/grade-tests-shared.mdChanges the “Post the comment” guidance to use a fixed-width HTML table and wrap-friendly <code> content to prevent horizontal scrolling.

Copilot's findings

  • Files reviewed: 1/1 changed files
  • Comments generated: 3

Comment thread.github/workflows/shared/grade-tests-shared.md Outdated
Comment thread.github/workflows/shared/grade-tests-shared.md Outdated
Comment thread.github/workflows/shared/grade-tests-shared.md Outdated
- Make the example test cell consistent with the rule (break only after underscores). Use a more realistic method name Method_WhenSomething_ReturnsValue rather than the abbreviated Method_WhenX_ReturnsY that previously inserted <wbr> mid-word.
- Drop the PascalCase clause from the <wbr> insertion rule. Underscores alone are sufficient for typical MSTest naming (Method_Scenario_Expectation), and keeping the rule about underscores only matches both examples and avoids the agent inventing PascalCase break points.
- Give the first column a screen-reader-visible header. Use 'Δ' (change indicator) so the column is no longer anonymous to assistive technology while staying narrow.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@Evangelink
Amaury Levé (Evangelink) enabled auto-merge (squash) June 9, 2026 11:56
@Evangelink
Amaury Levé (Evangelink) merged commit 2615f8b into microsoft:mainJun 9, 2026
39 checks passed
@Evangelink
Amaury Levé (Evangelink) deleted the dev/amauryleve/grade-tests-table-width branch June 9, 2026 12:17
Sign up for freeto 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.

3 participants

@Evangelink@azat-msft
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Constrain Test column width in grade-tests PR comment - #8961

Merged
Amaury Levé (Evangelink) merged 2 commits into
microsoft:mainfrom
Evangelink:dev/amauryleve/grade-tests-table-width
Jun 9, 2026
Merged

Constrain Test column width in grade-tests PR comment#8961
Amaury Levé (Evangelink) merged 2 commits into
microsoft:mainfrom
Evangelink:dev/amauryleve/grade-tests-table-width

Conversation

@Evangelink

Copy link
Copy Markdown
Member

Fixes the horizontal-scroll problem in the test-quality grade PR comment that the bot posts when a PR touches tests.

Before

The bot rendered a markdown pipe-table where the Test column put the fully-qualified test name (Namespace.ClassName.MethodName) inside backticks. GitHub renders backtick spans as non-wrapping <code>, so long MSTest names overflowed the PR-comment width and forced a horizontal scroll bar.

After

  • Switch the table from a markdown pipe-table to a raw HTML <table> with a <colgroup> that caps each column to a fixed percentage of the comment width (6% / 50% / 7% / 9% / 28%). GitHub's HTML sanitizer honors the width attribute on <table>, <col>, <th>, and <td>, so the columns stay within the PR-comment width.
  • Drop the namespace prefix from the displayed name (show ClassName.MethodName, never Namespace.ClassName.MethodName). Disambiguation moves to Notes if two graded methods would otherwise collide.
  • Use raw <code>…</code> HTML tags instead of backtick spans so nested <wbr> actually takes effect (backtick code spans render content literally in GFM, so a <wbr> inside backticks would display as the literal text <wbr>).
  • Inject invisible <wbr> soft-wrap hints after each _ in long PascalCase MSTest names so the constrained 50%-wide cell can actually wrap on long names like TestNodeResultsState_GetSingleActiveOrSummaryTask_WhenEmpty_ReturnsNull. <wbr> does not change what copy-paste yields.
  • Promote the (new) / (modified) marker out of the Test cell into its own narrow first column so it no longer competes for the cell width.

Files changed

  • .github/workflows/shared/grade-tests-shared.md — Step 4 ("Post the comment")

The two consumer workflows (grade-tests-on-pr.agent.md and grade-tests.agent.md) pull this body at runtime via {{#runtime-import …}}, so the .lock.yml files do not change.

Validation

  • gh aw compile grade-tests-on-pr.agent grade-tests.agent --strict → 0 errors, 0 warnings.

Switch the table from a markdown pipe-table to a raw HTML <table> with a <colgroup> that caps each column to a fixed percentage of the comment width (6 / 50 / 7 / 9 / 28). GitHub's HTML sanitizer honors the width attribute on <table>, <col>, <th>, and <td>, so the columns now stay within the PR-comment width without the horizontal scroll bar that long fully-qualified MSTest names previously triggered.
Cell contents are still made wrap-friendly: drop the namespace, use raw <code>…</code> (so nested <wbr> actually takes effect instead of rendering literally inside backtick code spans), and inject <wbr> soft-wrap hints after each underscore in long PascalCase MSTest names. <wbr> is invisible and does not change what copy-paste yields.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings June 9, 2026 09:59

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Updates the shared grade-tests workflow guidance so the bot’s PR comment renders without horizontal scrolling when test names are long, by switching from a Markdown pipe-table to a constrained-width HTML table and by adding soft-wrap hints within <code>.

Changes:

  • Replaces the Markdown pipe-table example with an HTML <table> using a fixed-width <colgroup> layout.
  • Updates the table rules to require HTML <table> output and to display shortened test names (dropping namespaces) with <wbr> wrap hints.
Show a summary per file
FileDescription
.github/workflows/shared/grade-tests-shared.mdChanges the “Post the comment” guidance to use a fixed-width HTML table and wrap-friendly <code> content to prevent horizontal scrolling.

Copilot's findings

  • Files reviewed: 1/1 changed files
  • Comments generated: 3

Comment thread.github/workflows/shared/grade-tests-shared.md Outdated
Comment thread.github/workflows/shared/grade-tests-shared.md Outdated
Comment thread.github/workflows/shared/grade-tests-shared.md Outdated
- Make the example test cell consistent with the rule (break only after underscores). Use a more realistic method name Method_WhenSomething_ReturnsValue rather than the abbreviated Method_WhenX_ReturnsY that previously inserted <wbr> mid-word.
- Drop the PascalCase clause from the <wbr> insertion rule. Underscores alone are sufficient for typical MSTest naming (Method_Scenario_Expectation), and keeping the rule about underscores only matches both examples and avoids the agent inventing PascalCase break points.
- Give the first column a screen-reader-visible header. Use 'Δ' (change indicator) so the column is no longer anonymous to assistive technology while staying narrow.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@Evangelink
Amaury Levé (Evangelink) enabled auto-merge (squash) June 9, 2026 11:56
@Evangelink
Amaury Levé (Evangelink) merged commit 2615f8b into microsoft:mainJun 9, 2026
39 checks passed
@Evangelink
Amaury Levé (Evangelink) deleted the dev/amauryleve/grade-tests-table-width branch June 9, 2026 12:17
Sign up for freeto 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.

3 participants

@Evangelink@azat-msft