Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 9 additions & 1 deletion .github/pages/template.html
Original file line number Diff line number Diff line change
Expand Up @@ -140,12 +140,20 @@
[align="center"] .banner + p { font-family: var(--sans); font-size: 1.12rem; font-weight: 600; color: var(--ink); max-width: 42ch; }

/* ---- image paragraphs: badges, screenshots, diagrams ---- */
p.imgrow { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; max-width: none; }
p.imgrow {
display: flex; flex-wrap: wrap; gap: 8px; justify-content: center;
/* never stretch: a flex line would resize replaced elements, and the
widest one then hits a width clamp and ends up shorter than the rest */
align-items: center; max-width: none;
}

p.banner { display: block; margin: 0 auto 26px; max-width: 640px; max-inline-size: 100%; }
p.banner img { display: block; width: 100%; }

p.badges { margin: 1.5em 0 0; gap: 7px; }
/* shields.io renders for-the-badge at 28px tall; pin it so every badge in
the row matches exactly, and keep flex out of their sizing */
p.badges img { height: 28px; width: auto; flex: 0 0 auto; }

/* screenshots get a terminal frame rather than a bare border */
p.shot {
Expand Down
2 changes: 1 addition & 1 deletion CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ python3 install.py # --cli-only, --dev, --prefix, --verify, --uninstal
# Pipe a single command (non-interactive; cli.py detects a non-tty stdin)
echo '/search "q2 plan"' | python3 -m glean_code

# Run the full test suite (1,100 tests, stdlib unittest — works with or without pytest)
# Run the full test suite (1,102 tests, stdlib unittest — works with or without pytest)
python3 -m pytest tests/
python3 -m unittest discover tests/

Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -176,7 +176,7 @@ The full Glean Code REPL — slash commands, status bar, mock/live switching, se
| 🔐 **[SSO / OAuth](docs/SSO_OAUTH.md)** · **[Secure tokens](docs/SECURE_TOKENS.md)** | Browser sign-in, secure refs, the masking matrix |
| 🔌 **[MCP server](docs/MCP.md)** | Glean as native tools in Claude Code, Claude Desktop, Cursor |
| 🏛️ **[Architecture](docs/ARCHITECTURE.md)** · **[REST paths](docs/REST_PATHS.md)** | Module map, request flow, endpoints, how to add a command |
| ✅ **[Testing](docs/TESTING.md)** | Running the 1,100-test suite and what it covers |
| ✅ **[Testing](docs/TESTING.md)** | Running the 1,102-test suite and what it covers |
| 🛟 **[Support](SUPPORT.md)** · **[Changelog](CHANGELOG.md)** | How to report a bug · release history |

> [!NOTE]
Expand Down
4 changes: 2 additions & 2 deletions docs/TESTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,13 @@ files, and they outrank the `Glean Code.app` launcher in `Cmd+Space`:
export PYTHONPYCACHEPREFIX="$HOME/.cache/python"
```

1,100 tests covering the client and every mock response, commands and dispatch, config, UI, auth, completion, help docs, the mock corpus, indexing-walk, scaffold, the installer, the MCP server, the flow mapper, the Pages site builder, and Glean Personal (text extraction, the index, the content graph, ranking explanations, local mode, and the local MCP tools).
1,102 tests covering the client and every mock response, commands and dispatch, config, UI, auth, completion, help docs, the mock corpus, indexing-walk, scaffold, the installer, the MCP server, the flow mapper, the Pages site builder, and Glean Personal (text extraction, the index, the content graph, ranking explanations, local mode, and the local MCP tools).

## Development notes

Notes on the test suite added during development of glean-code-cli.

All 1,100 tests pass. Here's what was added across the development passes:
All 1,102 tests pass. Here's what was added across the development passes:

`tests/test_commands_extended.py` (155 new tests) — covers all previously untested commands:

Expand Down
16 changes: 16 additions & 0 deletions tests/test_pages_build.py
Original file line number Diff line number Diff line change
Expand Up @@ -268,6 +268,22 @@ def test_no_unresolved_repo_relative_links_remain(self):
self.assertNotIn('href="LICENSE"', page)


class TestTemplate(unittest.TestCase):
"""Guards for stylesheet rules that a render bug traced back to."""

def setUp(self):
self.css = (REPO_ROOT / ".github" / "pages" / "template.html").read_text()

def test_badge_height_is_pinned(self):
# Without an explicit height the flex line stretched the badges and the
# widest one, clamped by the space left, stayed shorter than the rest.
self.assertIn("p.badges img { height: 28px; width: auto; flex: 0 0 auto; }", self.css)

def test_image_rows_do_not_stretch_their_items(self):
row = self.css[self.css.index("p.imgrow {"):]
self.assertIn("align-items: center", row[:row.index("}")])


class TestIcons(unittest.TestCase):
"""Browser icons are generated by .github/pages/make_icons.py."""

Expand Down
Loading