Skip to content

feat: measure references, M365 Maps link, SEO metadata, Playwright E2E and a new header logo - #66

Merged
DevSecNinja merged 2 commits into
mainfrom
feat/grip-references-seo-e2e
Jun 18, 2026
Merged

feat: measure references, M365 Maps link, SEO metadata, Playwright E2E and a new header logo#66
DevSecNinja merged 2 commits into
mainfrom
feat/grip-references-seo-e2e

Conversation

@DevSecNinja

Copy link
Copy Markdown
Owner

Summary

A single PR bundling four issues plus the new header logo.

#63 — "Further reading" references on measures

  • New optional references[] field on measures in src/data/grip.json (localized label_nl/en/fr + url), seeded on measure O7 (authentication policy).
  • MeasureDetailPanel.jsx renders a localized "Further reading" section under the Microsoft mapping; coexists with the new risk/control standards section from #38.
  • Added referencesTitle strings (nl/en/fr).

#62 — M365 Maps reference link

  • Footer link to m365maps.com for license comparison, added in App.jsx with m365MapsLink strings (nl/en/fr).

#22 — SEO / social metadata

  • Full index.html head rewrite: title, description, canonical, theme-color, Open Graph + Twitter cards, JSON-LD WebApplication.
  • New static assets in public/: robots.txt, sitemap.xml, site.webmanifest, og-image.png, icon-192.png, icon-512.png, apple-touch-icon.png (gradient brand mark).

#26 — Playwright end-to-end tests

  • playwright.config.js (chromium/firefox/webkit + mobile Chrome/Safari), e2e/app.spec.js, e2e/mobile.spec.js.
  • New .github/workflows/e2e.yml (SHA-pinned actions), test:e2e scripts, @playwright/test dev dependency, Vitest scoped to src/** so it ignores the e2e specs.

#31 — Header logo

  • Replaced the GRIP × MSFT text lockup in AppHeader.jsx with an inline, themeable gradient G-badge SVG (matching the favicon/icons), plus an accessible logoAlt aria-label (nl/en/fr).

Validation

  • npm run lint — clean
  • npm test — 16 unit tests pass
  • npm run test:e2e — E2E pass (7 desktop chromium + mobile projects)
  • Logo verified visually in the dev server.

Note: grip.json is intentionally left in the repo's existing (non-Prettier) formatting; only changed JS/CSS files were Prettier-formatted.

Closes #63
Closes #62
Closes #22
Closes #26
Closes #31

Integrates the brand G-badge (gradient #2f6df6 to #7c3aed with white G
mark, matching the favicon/icons) as an inline, themeable SVG in the
top-left header. Adds an accessible logoAlt aria-label in nl/en/fr.

Closes #31
@github-actions

Copy link
Copy Markdown
Contributor

🔍 Preview deployed: https://1ca44c2a.grip-visualizer.pages.dev

Updated: Thu, 18 Jun 2026 15:23:39 GMT

@DevSecNinja
DevSecNinja merged commit 4a60101 into main Jun 18, 2026
23 checks passed
@DevSecNinja
DevSecNinja deleted the feat/grip-references-seo-e2e branch June 18, 2026 15:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant