diff --git a/.okf/build/index.md b/.okf/build/index.md index a885217bf..21fed65fa 100644 --- a/.okf/build/index.md +++ b/.okf/build/index.md @@ -1,7 +1,7 @@ # Build & Test * [Hugo build pipeline](hugo-build.md) - bin/hugo-build with the 8 course validators; also the PurgeCSS cold-start race and the minified-unquoted-attribute audit-tool trap -* [Test gates](test-gates.md) - the local suites, when each is a commit blocker, the 0.0001 default tolerance, the SECTION_CONFIGS shield, why a green run never refreshes a baseline, and why below-fold content is invisible at any tolerance, bin/record-baselines for accepting only the baselines you meant to move, and why a deleted source file still serves from every local _dest/ tree, plus the NULL CHANGE - a diff that passes every gate and alters nothing - and what `okf_validate` actually guards (shape, not truth; error-only conformance) with the two-spec trap +* [Test gates](test-gates.md) - the local suites, when each is a commit blocker, the 0.0001 default tolerance, why the SECTION_CONFIGS shield was deleted and what measuring it cost, why a green run never refreshes a baseline, and why below-fold content is invisible at any tolerance, bin/record-baselines for accepting only the baselines you meant to move, and why a deleted source file still serves from every local _dest/ tree, plus the NULL CHANGE - a diff that passes every gate and alters nothing - and what `okf_validate` actually guards (shape, not truth; error-only conformance) with the two-spec trap * [CI gates](ci-gates.md) - what GitHub Actions enforces: build, unit, path-scoped link check (visual regression is report-only), and what gates a PR never sees * [Template PDFs](pdf-templates.md) - regenerating the downloadable course PDFs * [Classes only on <th> get purged](hugo-stats-th-classes.md) - Hugo 0.165 writeStats records no class attrs on ``, so PurgeCSS deletes those rules from the production bundle while dev builds look fine and the visual gate stays green; also two sibling false-greens on the /next/ rail (site-scripts in a landing baseof, computed `resources.Get` paths defeating the orphan guard) diff --git a/.okf/build/test-gates.md b/.okf/build/test-gates.md index 8f4c4b123..e3a1f34f1 100644 --- a/.okf/build/test-gates.md +++ b/.okf/build/test-gates.md @@ -88,32 +88,39 @@ genuinely new features**. This is the policy for what you ACCEPT, distinct from the mechanical default that decides whether the suite even reports a diff. That default is **0.0001** (`DEFAULT_SCREENSHOT_CONFIG`, -`test/support/screenshot_section_config.rb:29`), lowered from 0.02 on 2026-08-21. +`test/application_system_test_case.rb`), lowered from 0.02 on 2026-08-21. Both halves still hold: the accept-policy is unchanged, and individual calls may still pin their own tolerance (~30 do, mostly 0.03 - e.g. `test/system/blog_special_content_test.rb:136`), which the default never overrides. What changed is the floor for calls that pin NOTHING. -**`SECTION_CONFIGS` is now a deliberate temporary shield, not configuration.** -Its 7 keys all held 0.02, which equalled the old default - so the table was a -silent no-op for as long as it existed. Lowering the default made it -load-bearing: it now holds ~22 section screenshots at the OLD tolerance while -their drift is unmeasured. It is kept ON PURPOSE and deleted once those are -measured and re-recorded. Its keys match the tail after `/_`, which is easy to -misread: `services/_technologies` hits the `technologies` key (0.02), while -`services/_testimonials-header` does NOT hit `testimonials` and gets the -default - one string, not a prefix. Both the table and the rule live in -`test/support/screenshot_section_config.rb`, apart from -`ApplicationSystemTestCase` so they can be unit-tested without booting Hugo, -Capybara, or that file's dirty-fixtures `abort`; the near-miss above is pinned -in `test/unit/screenshot_section_config_test.rb`. +**`SECTION_CONFIGS` is GONE (deleted 2026-08-21), and its exit condition was +met by measurement, not by judgement.** It existed for one day as a temporary +shield holding ~22 section screenshots at the old 0.02 while their drift was +unmeasured. Measured on the full macOS system suite, both sides in the same +environment: **shield in place 48 failing screenshots, shield emptied 50** - +a cost of exactly **+2**, `desktop/services/_use-cases` (0.017498) and +`desktop/services/_technologies` (0.013838). Both were then classified and +re-recorded, so the table was deleted along with `screenshot_config_for`, +`extract_section_key`, `test/support/screenshot_section_config.rb` and its +unit test. `DEFAULT_SCREENSHOT_CONFIG` survives as a plain constant on +`ApplicationSystemTestCase`; there is no per-section tolerance table any more, +and a call that needs slack pins its own tolerance. + +The deleted table's keys matched the tail after `/_`, which mattered because +it was easy to misread: `services/_technologies` hit the `technologies` key +(0.02) while `services/_testimonials-header` did NOT hit `testimonials` and +got the default - one string, not a prefix. That subtlety is only recorded +here now; nothing in the tree implements it. Why 0.0001: on a 1920x1080 capture, 0.02 means ~41,472 pixels must differ before the assertion fails. A one-cell copy edit measures 0.0004 (844 px), so the gate was blind to it by 50x - and passed, which is worse than failing (see the fossilization bullet below). Measured run-to-run noise on a static -page is 0.0, so the floor only has to clear zero; 0.0001 (~207 px) fails that -copy edit and goes green again when it is reverted. The noise claim is +page is ~1e-6, not 0 (three runs of `services/_technologies`: 0.013838252, +0.013838252, 0.013837770 - about 2 px of 2,073,600), so the floor has to clear +that; 0.0001 (~207 px) sits 100x above it, fails that copy edit, and goes green +again when it is reverted. The noise claim is checkable without re-running the copy edit: two independent runs of the same test reported difference_levels identical to 16 decimal places (0.6893909143518518 for `services/_footer` every time), and 2 of the 7 screenshots stayed GREEN at @@ -141,8 +148,28 @@ shield deletion, and they are exactly the two whose names happen to hit a SECTION_CONFIGS key. The two changes look like one line and one dead constant, but they move different screenshots. -All of these are the #540 dark-surface recolour: real stale-baseline -detections, not machine drift, and not caused by the tolerance change. +All are real stale-baseline detections, not machine drift, and none is caused +by the tolerance change. + +**Correction (2026-08-21, from the re-record that measured them):** an earlier +version of this section attributed all five to the #540 dark-surface recolour. +Only the two big ones are. `_footer` and `_cta-contact_us` are #540 +(`rgb(0,0,0)` -> `rgb(20,17,15)` is 97-99% of their changed pixels). The three +small ones - `_testimonials-header`, `_use-cases`, `_technologies` - contain +**0.13% or less** of that transition. They are a **1-pixel vertical offset** +from #528's eyebrow consolidation, which touched `services-critical.css` and +`content-block.css` and re-recorded only the two sections that exceeded 0.02; +everything below the eyebrow on /services/ shifted 1px, passed under the old +default, and fossilized. Measured, not inferred: realigning baseline to +candidate by one pixel drops the residual to **exactly 0.0000 in several +bands** and collapses the non-blend suspect count by orders of magnitude +(`blog/index/_pagination`: 32,652 px at dy=0 -> 106 at dy=-1). It does NOT +reach zero page-wide - a sub-pixel shift re-rasterizes glyphs rather than +translating them, so `services/_use-cases` still differs in 22,895 px after +the best realignment. Content is identical on inspection; position moved. The +lesson is the one this file already teaches - a plausible cause that matches +the loudest diffs will happily absorb the quiet ones that have a different +cause entirely. # Below the fold is invisible to the gate at ANY tolerance @@ -208,6 +235,24 @@ Minitest under `test/`, driven by `Rakefile` (`Rake::TestTask`). frontmatter is set, and adds it to the ratchet. The script self-reports slack (`post-visuals: floor is loose, lower FLOOR to N`) - obey it: `FLOOR` dropped 78 -> 72 on 2026-08-20 on the script's own prompt. +- **Screen a CI re-record with the gate's own instrument** (2026-08-21). + `FORCE_SCREENSHOT_UPDATE` rewrites every baseline, so a CI record commit is + much larger than the real change set - the 2026-08-21 Linux record touched + 83 files. Do not screen it by eye or by file size. Compute the libvips + **dE00 fraction above `perceptual_threshold = 2.0`** (what + `difference_level` actually measures) for each file and compare against the + 0.0001 default: files above it would FAIL the gate, so the rewrite is real + and dropping them leaves CI red; files at exactly 0 are encoder churn and + should be reverted. That split was 77 keep / 6 drop, and it needs no + judgement call. + + **Neither OS baseline set is a subset of the other**, so never infer one + from the other. Earlier PRs re-recorded only the OS they ran on: #528 + committed `macos/mobile/services.png` and left `linux/mobile/services.png` + stale (still carrying the shift), while `linux/.../inline_style_post` was + already current from a post-#520 CI record when macOS was 25% stale. The + Linux record here was legitimately BROADER than the macOS one (77 vs 50). + - **`FORCE_SCREENSHOT_UPDATE=1` re-records EVERYTHING** (2026-08-14). On `bin/dtest` it also disables the `git checkout -- .../linux` guard that normally discards sub-tolerance Rosetta drift, so a run rewrites all 45 @@ -271,7 +316,7 @@ Minitest under `test/`, driven by `Rakefile` (`Rake::TestTask`). record: 356 runs, 6329 assertions, 0 failures (run 32347402944). Note the governing tolerance for these is **0.03**, set per-call at `test/system/blog_special_content_test.rb:136` - NOT the - `DEFAULT_SCREENSHOT_CONFIG` in `test/support/screenshot_section_config.rb:29`, + `DEFAULT_SCREENSHOT_CONFIG` in `test/application_system_test_case.rb`, which only applies when a call omits an explicit tolerance. - **Content-only diffs skip the visual suites entirely** (Paul 2026-07-31). diff --git a/.okf/log.md b/.okf/log.md index 4bcb6dca0..68b716737 100644 --- a/.okf/log.md +++ b/.okf/log.md @@ -66,6 +66,88 @@ set BASE_URL or the browser silently loads the LIVE site's CSS. The shared mobile table-clip defect (all three pilots, column 2 off-edge without affordance) is deliberately deferred to the winner's graft round - fixing it three times buys nothing. +## 2026-08-21 - the macOS suite is green again: 50 baselines re-recorded, and the shield deleted on a measurement + +The macOS visual suite had been red on master since #540. It is green now: +**79 runs, 218 assertions, 0 failures; 134 screenshots compared, no failures.** + +**What was stale, and why.** Two mechanics compose into fossilization: a +capture overwrites the baseline PNG, then a PASSING run restores the git-HEAD +image back over it. So any change small enough to pass leaves the baseline +showing the OLD render, permanently. #540 was large enough to FAIL and simply +was not re-recorded; #520 and #528 were not, and had been accumulating quietly +under the old 0.02 default. Lowering the default to 0.0001 (#560) is what +finally surfaced the quiet ones. + +**50 baselines re-recorded, every one classified before it was accepted** - +by baseline-vs-candidate pixel transitions, never by difference_level: + +| n | class | evidence | +|---|---|---| +| 42 | #540 dark-surface recolour | `rgb(0,0,0)` -> `rgb(20,17,15)` is 94-100% of changed px | +| 3 | #520 `description` backfill | template renders it as a grey lead; rendered text matches the frontmatter string verbatim | +| 2 | #552 course module eyebrow | ruby eyebrow above the H1 shifts the page down | +| 3 | #528 eyebrow consolidation | 1px vertical offset; realigning by one pixel gives residual **exactly 0.0000** in several bands | + +The DOMINANT cause of every file is explained, so nothing was withheld as a +suspected regression. Independent review (opus, own instruments, exact +transition count over all 50) reproduced the 42/3/2/3 split and agreed +file-by-file. It also found what the classification does not name: three files +carry a SECONDARY 1px displacement on top of the recolour, and two mobile files +carry #540's sibling `--ruby-on-ink` token change. All position-or-token only, +content identical - which is why no baseline is wrong, and why "zero +unexplained" is the wrong phrase for "every dominant cause identified". + +**`SECTION_CONFIGS` is deleted, on a measurement rather than a judgement.** +Its stated exit condition was "delete once the shielded screenshots are +measured and re-recorded", so it was measured both ways in the same +environment: **shield in place 48 failing screenshots, shield emptied 50**. +Cost of deletion: **+2**, both on /services/, both the #528 1px offset, both +re-recorded. Gone with it: `screenshot_config_for`, `extract_section_key`, +`test/support/screenshot_section_config.rb` and its unit test. +`DEFAULT_SCREENSHOT_CONFIG` survives as a plain constant on +`ApplicationSystemTestCase`. + +**A correction to this bundle, found by doing the work.** test-gates said all +five failing `/services/` screenshots were the #540 recolour. Only two are; +the three small ones carry **0.13% or less** of the black->ink transition and +are #528's 1px shift instead. A plausible cause that fits the loudest diffs +will absorb the quiet ones that have a different cause - which is why the +transition histogram, not the difference_level, is the classifier. + +**And one instrument error, caught by this bundle's own rule.** The first +transition script loaded each baseline from a reused temp filename; libvips +caches operations by filename, so runs 2..n silently re-compared image 1. It +reported `services/_footer`'s baseline as a pure-black frame - a dramatic, +completely false finding. A brightness audit over all 155 tracked macOS +baselines refuted it in one pass (darkest mean 69/255, none below 1.0). The +rewritten script carries a permanent control: an unchanged baseline +(`desktop/vibe_code_rescue`) must report exactly 0 changed pixels, and does. +"Test the instrument against a case where the answer is known" earned its +keep here. + +**The Linux leg, and a screening rule worth reusing.** Recorded through CI on +the branch (`gh workflow run test.yml --ref -f screenshots=true -f +update-baselines=true`), never locally - local ARM Docker plants false drift. +`FORCE_SCREENSHOT_UPDATE` rewrites EVERYTHING, so the bot commit touched 83 +files and had to be screened. Screen it with **the gate's own instrument**, +not by eye or by file size: compute the libvips dE00 fraction above +`perceptual_threshold = 2.0` for each file and compare it to the 0.0001 +default. That splits 83 into **77 keep** (would fail the gate, so the rewrite +is real) and **6 drop** (difference_level exactly 0 - pure encoder churn). + +The Linux set being BROADER than the macOS one (77 vs 50) looks wrong and is +not: earlier PRs re-recorded only one OS. #528 committed +`macos/mobile/services.png` and left its `linux/` twin stale, so that file +still carries a visible #528 shift on Linux; conversely +`linux/.../inline_style_post` barely moves because Linux was re-recorded after +#520 while macOS was 25% stale. **Neither OS baseline set is a subset of the +other** - do not reason about one from the other. + +Run-to-run noise, measured across three runs of `services/_technologies`: +0.013838252, 0.013838252, 0.013837770 - about **2 px of 2,073,600** (~1e-6), +comfortably under the 0.0001 floor. The earlier claim that noise is exactly +0.0 was very nearly right and is now stated as what was actually observed. ## 2026-08-21 - register pilot B, and the two ways a second pilot breaks the first pilot's gates diff --git a/docs/20-29-testing-qa/20.10-test-coverage-gap-analysis-reference.md b/docs/20-29-testing-qa/20.10-test-coverage-gap-analysis-reference.md index 404ee8940..265491a95 100644 --- a/docs/20-29-testing-qa/20.10-test-coverage-gap-analysis-reference.md +++ b/docs/20-29-testing-qa/20.10-test-coverage-gap-analysis-reference.md @@ -427,8 +427,10 @@ with any content ratchet - assert structure, per 20.05. test holding the same list. 4. **FIXED 2026-08-21 — screenshot tolerance was 2%**, so a four-word link change (~0.24% of frame) passed and never re-recorded the baseline. Default - is now 0.0001 (`test/support/screenshot_section_config.rb`); mechanism, - remaining blind axes, and the section-shield are in `.okf/build/test-gates.md`. + is now 0.0001 (`test/application_system_test_case.rb`); mechanism and the + remaining blind axes are in `.okf/build/test-gates.md`. The section-tolerance + shield that briefly held ~22 screenshots at the old default is gone - its + drift was measured and re-recorded on 2026-08-21. 5. **`content/clients/**` is not covered** by the marketing ratchet and still carries "to the next level" in two case-study excerpts. The exclusion is commented in the test rather than implied. diff --git a/test/application_system_test_case.rb b/test/application_system_test_case.rb index afab3a1cc..6e4bea31e 100644 --- a/test/application_system_test_case.rb +++ b/test/application_system_test_case.rb @@ -10,7 +10,6 @@ require "support/setup_capybara" require "support/setup_snap_diff" require "support/hugo_helpers" -require "support/screenshot_section_config" # Every system-test run REWRITES the committed baseline PNGs in place # (snap_diff design: working tree = candidate, git HEAD = baseline). Starting @@ -74,7 +73,13 @@ class ApplicationSystemTestCase < Minitest::Test include CapybaraScreenshotDiff::Minitest::Assertions include NavigationHelpers - include ScreenshotSectionConfig + # Floor for calls that pin no tolerance of their own. 0.02 let ~41,472 pixels + # of a 1920x1080 frame change before failing, so real diffs passed green and + # the baseline fossilized. Measured run-to-run noise is ~1e-6 (three runs of + # services/_technologies: 0.013838252 twice, then 0.013837770 - about 2 px of + # 2,073,600), so the floor only has to clear that: 0.0001 is ~207 px. Calls + # needing real slack (font-swap, animation) still pin their own tolerance. + DEFAULT_SCREENSHOT_CONFIG = {tolerance: 0.0001}.freeze private @@ -96,8 +101,7 @@ def assert_screenshot(name, **options) # resolves instantly once fonts are cached, so warm sessions pay ~0. page.evaluate_async_script("var done = arguments[0]; document.fonts.ready.then(function() { done(true) })") - section_config = screenshot_config_for(name) - final_options = section_config.merge(options) + final_options = DEFAULT_SCREENSHOT_CONFIG.merge(options) # skip_area CSS selectors resolve via Capybara `all(sel, visible: true)` # INSIDE the gem, which waits default_max_wait_time (5s) for EVERY selector diff --git a/test/fixtures/screenshots/linux/desktop/404.png b/test/fixtures/screenshots/linux/desktop/404.png index 5f119f610..9d1686f86 100644 Binary files a/test/fixtures/screenshots/linux/desktop/404.png and b/test/fixtures/screenshots/linux/desktop/404.png differ diff --git a/test/fixtures/screenshots/linux/desktop/about_page/_achievements.png b/test/fixtures/screenshots/linux/desktop/about_page/_achievements.png index 154e79310..cf917e076 100644 Binary files a/test/fixtures/screenshots/linux/desktop/about_page/_achievements.png and b/test/fixtures/screenshots/linux/desktop/about_page/_achievements.png differ diff --git a/test/fixtures/screenshots/linux/desktop/about_page/_cta-contact_us.png b/test/fixtures/screenshots/linux/desktop/about_page/_cta-contact_us.png index 53bba2373..b7ab13e48 100644 Binary files a/test/fixtures/screenshots/linux/desktop/about_page/_cta-contact_us.png and b/test/fixtures/screenshots/linux/desktop/about_page/_cta-contact_us.png differ diff --git a/test/fixtures/screenshots/linux/desktop/about_page/_footer.png b/test/fixtures/screenshots/linux/desktop/about_page/_footer.png index a40949094..3d45a1c5e 100644 Binary files a/test/fixtures/screenshots/linux/desktop/about_page/_footer.png and b/test/fixtures/screenshots/linux/desktop/about_page/_footer.png differ diff --git a/test/fixtures/screenshots/linux/desktop/about_page/_missions.png b/test/fixtures/screenshots/linux/desktop/about_page/_missions.png index ac6499dcd..42cbd00ba 100644 Binary files a/test/fixtures/screenshots/linux/desktop/about_page/_missions.png and b/test/fixtures/screenshots/linux/desktop/about_page/_missions.png differ diff --git a/test/fixtures/screenshots/linux/desktop/about_page/_values.png b/test/fixtures/screenshots/linux/desktop/about_page/_values.png index 15fab1eeb..3528b1013 100644 Binary files a/test/fixtures/screenshots/linux/desktop/about_page/_values.png and b/test/fixtures/screenshots/linux/desktop/about_page/_values.png differ diff --git a/test/fixtures/screenshots/linux/desktop/blog/index.png b/test/fixtures/screenshots/linux/desktop/blog/index.png index 9a8fd239e..9fa120243 100644 Binary files a/test/fixtures/screenshots/linux/desktop/blog/index.png and b/test/fixtures/screenshots/linux/desktop/blog/index.png differ diff --git a/test/fixtures/screenshots/linux/desktop/blog/index/_pagination.png b/test/fixtures/screenshots/linux/desktop/blog/index/_pagination.png index 2a0f16b3d..f497b5210 100644 Binary files a/test/fixtures/screenshots/linux/desktop/blog/index/_pagination.png and b/test/fixtures/screenshots/linux/desktop/blog/index/_pagination.png differ diff --git a/test/fixtures/screenshots/linux/desktop/blog/special/codeblocks/bare.png b/test/fixtures/screenshots/linux/desktop/blog/special/codeblocks/bare.png index a9a05f8f5..b7a84ce62 100644 Binary files a/test/fixtures/screenshots/linux/desktop/blog/special/codeblocks/bare.png and b/test/fixtures/screenshots/linux/desktop/blog/special/codeblocks/bare.png differ diff --git a/test/fixtures/screenshots/linux/desktop/blog/special/codeblocks/indented.png b/test/fixtures/screenshots/linux/desktop/blog/special/codeblocks/indented.png index 6320b1144..7413ec7ce 100644 Binary files a/test/fixtures/screenshots/linux/desktop/blog/special/codeblocks/indented.png and b/test/fixtures/screenshots/linux/desktop/blog/special/codeblocks/indented.png differ diff --git a/test/fixtures/screenshots/linux/desktop/blog/special/inline_style_post.png b/test/fixtures/screenshots/linux/desktop/blog/special/inline_style_post.png index 58fe2ecd0..ba1d3cdd0 100644 Binary files a/test/fixtures/screenshots/linux/desktop/blog/special/inline_style_post.png and b/test/fixtures/screenshots/linux/desktop/blog/special/inline_style_post.png differ diff --git a/test/fixtures/screenshots/linux/desktop/blog/tag.png b/test/fixtures/screenshots/linux/desktop/blog/tag.png index 3bf7cefd2..fba201cc1 100644 Binary files a/test/fixtures/screenshots/linux/desktop/blog/tag.png and b/test/fixtures/screenshots/linux/desktop/blog/tag.png differ diff --git a/test/fixtures/screenshots/linux/desktop/careers.png b/test/fixtures/screenshots/linux/desktop/careers.png index 306318cdf..983cebf40 100644 Binary files a/test/fixtures/screenshots/linux/desktop/careers.png and b/test/fixtures/screenshots/linux/desktop/careers.png differ diff --git a/test/fixtures/screenshots/linux/desktop/careers/_footer.png b/test/fixtures/screenshots/linux/desktop/careers/_footer.png index 0c3b6f950..27769fe83 100644 Binary files a/test/fixtures/screenshots/linux/desktop/careers/_footer.png and b/test/fixtures/screenshots/linux/desktop/careers/_footer.png differ diff --git a/test/fixtures/screenshots/linux/desktop/careers/_newsletter.png b/test/fixtures/screenshots/linux/desktop/careers/_newsletter.png index 0c3b6f950..27769fe83 100644 Binary files a/test/fixtures/screenshots/linux/desktop/careers/_newsletter.png and b/test/fixtures/screenshots/linux/desktop/careers/_newsletter.png differ diff --git a/test/fixtures/screenshots/linux/desktop/careers/_offers.png b/test/fixtures/screenshots/linux/desktop/careers/_offers.png index 864836564..c121f5008 100644 Binary files a/test/fixtures/screenshots/linux/desktop/careers/_offers.png and b/test/fixtures/screenshots/linux/desktop/careers/_offers.png differ diff --git a/test/fixtures/screenshots/linux/desktop/careers/junior-ruby-on-rails-developer.png b/test/fixtures/screenshots/linux/desktop/careers/junior-ruby-on-rails-developer.png index e39e02ad2..6c059685a 100644 Binary files a/test/fixtures/screenshots/linux/desktop/careers/junior-ruby-on-rails-developer.png and b/test/fixtures/screenshots/linux/desktop/careers/junior-ruby-on-rails-developer.png differ diff --git a/test/fixtures/screenshots/linux/desktop/careers/junior-ruby-on-rails-developer/_footer.png b/test/fixtures/screenshots/linux/desktop/careers/junior-ruby-on-rails-developer/_footer.png index 8eecd83b2..ffa580a77 100644 Binary files a/test/fixtures/screenshots/linux/desktop/careers/junior-ruby-on-rails-developer/_footer.png and b/test/fixtures/screenshots/linux/desktop/careers/junior-ruby-on-rails-developer/_footer.png differ diff --git a/test/fixtures/screenshots/linux/desktop/clients.png b/test/fixtures/screenshots/linux/desktop/clients.png index f8f335ecc..407692aa3 100644 Binary files a/test/fixtures/screenshots/linux/desktop/clients.png and b/test/fixtures/screenshots/linux/desktop/clients.png differ diff --git a/test/fixtures/screenshots/linux/desktop/clients/_cta-contact_us.png b/test/fixtures/screenshots/linux/desktop/clients/_cta-contact_us.png index 4cfb19478..3456c2626 100644 Binary files a/test/fixtures/screenshots/linux/desktop/clients/_cta-contact_us.png and b/test/fixtures/screenshots/linux/desktop/clients/_cta-contact_us.png differ diff --git a/test/fixtures/screenshots/linux/desktop/clients/_footer.png b/test/fixtures/screenshots/linux/desktop/clients/_footer.png index 5b5bc757c..d43f78edc 100644 Binary files a/test/fixtures/screenshots/linux/desktop/clients/_footer.png and b/test/fixtures/screenshots/linux/desktop/clients/_footer.png differ diff --git a/test/fixtures/screenshots/linux/desktop/clients/_real-clients.png b/test/fixtures/screenshots/linux/desktop/clients/_real-clients.png index aa5ff20b5..33a2f5d21 100644 Binary files a/test/fixtures/screenshots/linux/desktop/clients/_real-clients.png and b/test/fixtures/screenshots/linux/desktop/clients/_real-clients.png differ diff --git a/test/fixtures/screenshots/linux/desktop/clients/_testimonials.png b/test/fixtures/screenshots/linux/desktop/clients/_testimonials.png index dea1f67d5..277bc025f 100644 Binary files a/test/fixtures/screenshots/linux/desktop/clients/_testimonials.png and b/test/fixtures/screenshots/linux/desktop/clients/_testimonials.png differ diff --git a/test/fixtures/screenshots/linux/desktop/clients/agent-inbox/_cta-contact_us.png b/test/fixtures/screenshots/linux/desktop/clients/agent-inbox/_cta-contact_us.png index ca6fc5a5b..d6ab3d5a5 100644 Binary files a/test/fixtures/screenshots/linux/desktop/clients/agent-inbox/_cta-contact_us.png and b/test/fixtures/screenshots/linux/desktop/clients/agent-inbox/_cta-contact_us.png differ diff --git a/test/fixtures/screenshots/linux/desktop/clients/agent-inbox/_footer.png b/test/fixtures/screenshots/linux/desktop/clients/agent-inbox/_footer.png index e85dd1abc..41f52de9c 100644 Binary files a/test/fixtures/screenshots/linux/desktop/clients/agent-inbox/_footer.png and b/test/fixtures/screenshots/linux/desktop/clients/agent-inbox/_footer.png differ diff --git a/test/fixtures/screenshots/linux/desktop/contact_us.png b/test/fixtures/screenshots/linux/desktop/contact_us.png index 0f928381f..54ffee14f 100644 Binary files a/test/fixtures/screenshots/linux/desktop/contact_us.png and b/test/fixtures/screenshots/linux/desktop/contact_us.png differ diff --git a/test/fixtures/screenshots/linux/desktop/free_consultation.png b/test/fixtures/screenshots/linux/desktop/free_consultation.png index 2fd7ff1a9..1dabec67e 100644 Binary files a/test/fixtures/screenshots/linux/desktop/free_consultation.png and b/test/fixtures/screenshots/linux/desktop/free_consultation.png differ diff --git a/test/fixtures/screenshots/linux/desktop/friday_report.png b/test/fixtures/screenshots/linux/desktop/friday_report.png new file mode 100644 index 000000000..e4f3171f3 Binary files /dev/null and b/test/fixtures/screenshots/linux/desktop/friday_report.png differ diff --git a/test/fixtures/screenshots/linux/desktop/homepage/_clients.png b/test/fixtures/screenshots/linux/desktop/homepage/_clients.png index 2193bc3d4..aae171ec4 100644 Binary files a/test/fixtures/screenshots/linux/desktop/homepage/_clients.png and b/test/fixtures/screenshots/linux/desktop/homepage/_clients.png differ diff --git a/test/fixtures/screenshots/linux/desktop/homepage/_cta-contact_us.png b/test/fixtures/screenshots/linux/desktop/homepage/_cta-contact_us.png index b4a57427a..5649bc7d3 100644 Binary files a/test/fixtures/screenshots/linux/desktop/homepage/_cta-contact_us.png and b/test/fixtures/screenshots/linux/desktop/homepage/_cta-contact_us.png differ diff --git a/test/fixtures/screenshots/linux/desktop/homepage/_footer.png b/test/fixtures/screenshots/linux/desktop/homepage/_footer.png index d4687375f..7920b919a 100644 Binary files a/test/fixtures/screenshots/linux/desktop/homepage/_footer.png and b/test/fixtures/screenshots/linux/desktop/homepage/_footer.png differ diff --git a/test/fixtures/screenshots/linux/desktop/homepage/_services.png b/test/fixtures/screenshots/linux/desktop/homepage/_services.png index d3ea1954a..7fafe7a52 100644 Binary files a/test/fixtures/screenshots/linux/desktop/homepage/_services.png and b/test/fixtures/screenshots/linux/desktop/homepage/_services.png differ diff --git a/test/fixtures/screenshots/linux/desktop/homepage/_technologies.png b/test/fixtures/screenshots/linux/desktop/homepage/_technologies.png index fddd79f91..56428600b 100644 Binary files a/test/fixtures/screenshots/linux/desktop/homepage/_technologies.png and b/test/fixtures/screenshots/linux/desktop/homepage/_technologies.png differ diff --git a/test/fixtures/screenshots/linux/desktop/next/editorial.png b/test/fixtures/screenshots/linux/desktop/next/editorial.png new file mode 100644 index 000000000..82ae0fb9f Binary files /dev/null and b/test/fixtures/screenshots/linux/desktop/next/editorial.png differ diff --git a/test/fixtures/screenshots/linux/desktop/next/pilot.png b/test/fixtures/screenshots/linux/desktop/next/pilot.png index 9eab6881d..c224b9f5a 100644 Binary files a/test/fixtures/screenshots/linux/desktop/next/pilot.png and b/test/fixtures/screenshots/linux/desktop/next/pilot.png differ diff --git a/test/fixtures/screenshots/linux/desktop/next/precision.png b/test/fixtures/screenshots/linux/desktop/next/precision.png new file mode 100644 index 000000000..696f4fda8 Binary files /dev/null and b/test/fixtures/screenshots/linux/desktop/next/precision.png differ diff --git a/test/fixtures/screenshots/linux/desktop/next/rescue-room.png b/test/fixtures/screenshots/linux/desktop/next/rescue-room.png new file mode 100644 index 000000000..e9cf4cfac Binary files /dev/null and b/test/fixtures/screenshots/linux/desktop/next/rescue-room.png differ diff --git a/test/fixtures/screenshots/linux/desktop/privacy-policy.png b/test/fixtures/screenshots/linux/desktop/privacy-policy.png index c8b453c26..9094a862d 100644 Binary files a/test/fixtures/screenshots/linux/desktop/privacy-policy.png and b/test/fixtures/screenshots/linux/desktop/privacy-policy.png differ diff --git a/test/fixtures/screenshots/linux/desktop/services/_cta-contact_us.png b/test/fixtures/screenshots/linux/desktop/services/_cta-contact_us.png index 69aa6772b..e5f406d88 100644 Binary files a/test/fixtures/screenshots/linux/desktop/services/_cta-contact_us.png and b/test/fixtures/screenshots/linux/desktop/services/_cta-contact_us.png differ diff --git a/test/fixtures/screenshots/linux/desktop/services/_footer.png b/test/fixtures/screenshots/linux/desktop/services/_footer.png index b4296b113..721d6b73c 100644 Binary files a/test/fixtures/screenshots/linux/desktop/services/_footer.png and b/test/fixtures/screenshots/linux/desktop/services/_footer.png differ diff --git a/test/fixtures/screenshots/linux/desktop/services/_overview.png b/test/fixtures/screenshots/linux/desktop/services/_overview.png index ac8cb1763..b9b2dfb38 100644 Binary files a/test/fixtures/screenshots/linux/desktop/services/_overview.png and b/test/fixtures/screenshots/linux/desktop/services/_overview.png differ diff --git a/test/fixtures/screenshots/linux/desktop/services/_services.png b/test/fixtures/screenshots/linux/desktop/services/_services.png index d18be40df..463c7f0d5 100644 Binary files a/test/fixtures/screenshots/linux/desktop/services/_services.png and b/test/fixtures/screenshots/linux/desktop/services/_services.png differ diff --git a/test/fixtures/screenshots/linux/desktop/services/_technologies.png b/test/fixtures/screenshots/linux/desktop/services/_technologies.png index 8e408bf8b..cc3e4f3b7 100644 Binary files a/test/fixtures/screenshots/linux/desktop/services/_technologies.png and b/test/fixtures/screenshots/linux/desktop/services/_technologies.png differ diff --git a/test/fixtures/screenshots/linux/desktop/services/_testimonials-header.png b/test/fixtures/screenshots/linux/desktop/services/_testimonials-header.png index 4759b98d8..99117ebe5 100644 Binary files a/test/fixtures/screenshots/linux/desktop/services/_testimonials-header.png and b/test/fixtures/screenshots/linux/desktop/services/_testimonials-header.png differ diff --git a/test/fixtures/screenshots/linux/desktop/services/_use-cases.png b/test/fixtures/screenshots/linux/desktop/services/_use-cases.png index 232caf428..2fc40b00b 100644 Binary files a/test/fixtures/screenshots/linux/desktop/services/_use-cases.png and b/test/fixtures/screenshots/linux/desktop/services/_use-cases.png differ diff --git a/test/fixtures/screenshots/linux/desktop/services/app_web_development.png b/test/fixtures/screenshots/linux/desktop/services/app_web_development.png index 9ff2e0360..3015ece74 100644 Binary files a/test/fixtures/screenshots/linux/desktop/services/app_web_development.png and b/test/fixtures/screenshots/linux/desktop/services/app_web_development.png differ diff --git a/test/fixtures/screenshots/linux/desktop/services/app_web_development_hero.png b/test/fixtures/screenshots/linux/desktop/services/app_web_development_hero.png index 95a5369bd..3015ece74 100644 Binary files a/test/fixtures/screenshots/linux/desktop/services/app_web_development_hero.png and b/test/fixtures/screenshots/linux/desktop/services/app_web_development_hero.png differ diff --git a/test/fixtures/screenshots/linux/desktop/services/fractional-cto/_cta-contact_us.png b/test/fixtures/screenshots/linux/desktop/services/fractional-cto/_cta-contact_us.png index eae893993..fed004e7e 100644 Binary files a/test/fixtures/screenshots/linux/desktop/services/fractional-cto/_cta-contact_us.png and b/test/fixtures/screenshots/linux/desktop/services/fractional-cto/_cta-contact_us.png differ diff --git a/test/fixtures/screenshots/linux/desktop/services/fractional-cto/_footer.png b/test/fixtures/screenshots/linux/desktop/services/fractional-cto/_footer.png index 05ddbda7c..99280fefe 100644 Binary files a/test/fixtures/screenshots/linux/desktop/services/fractional-cto/_footer.png and b/test/fixtures/screenshots/linux/desktop/services/fractional-cto/_footer.png differ diff --git a/test/fixtures/screenshots/linux/desktop/services/fractional-cto/_overview.png b/test/fixtures/screenshots/linux/desktop/services/fractional-cto/_overview.png index a3cc4fe90..fe6005de2 100644 Binary files a/test/fixtures/screenshots/linux/desktop/services/fractional-cto/_overview.png and b/test/fixtures/screenshots/linux/desktop/services/fractional-cto/_overview.png differ diff --git a/test/fixtures/screenshots/linux/desktop/services/fractional-cto/_testimonials.png b/test/fixtures/screenshots/linux/desktop/services/fractional-cto/_testimonials.png index e5dc8102f..61fdf8ca7 100644 Binary files a/test/fixtures/screenshots/linux/desktop/services/fractional-cto/_testimonials.png and b/test/fixtures/screenshots/linux/desktop/services/fractional-cto/_testimonials.png differ diff --git a/test/fixtures/screenshots/linux/desktop/services/fractional_cto.png b/test/fixtures/screenshots/linux/desktop/services/fractional_cto.png index 0855765c3..39c727a1e 100644 Binary files a/test/fixtures/screenshots/linux/desktop/services/fractional_cto.png and b/test/fixtures/screenshots/linux/desktop/services/fractional_cto.png differ diff --git a/test/fixtures/screenshots/linux/desktop/use-cases/_cta-contact_us.png b/test/fixtures/screenshots/linux/desktop/use-cases/_cta-contact_us.png index c770b48c4..f54762f5b 100644 Binary files a/test/fixtures/screenshots/linux/desktop/use-cases/_cta-contact_us.png and b/test/fixtures/screenshots/linux/desktop/use-cases/_cta-contact_us.png differ diff --git a/test/fixtures/screenshots/linux/desktop/use-cases/_footer.png b/test/fixtures/screenshots/linux/desktop/use-cases/_footer.png index 37029c303..8de084f7e 100644 Binary files a/test/fixtures/screenshots/linux/desktop/use-cases/_footer.png and b/test/fixtures/screenshots/linux/desktop/use-cases/_footer.png differ diff --git a/test/fixtures/screenshots/linux/desktop/use-cases/_overview.png b/test/fixtures/screenshots/linux/desktop/use-cases/_overview.png index b2f3944d0..4ac9dede8 100644 Binary files a/test/fixtures/screenshots/linux/desktop/use-cases/_overview.png and b/test/fixtures/screenshots/linux/desktop/use-cases/_overview.png differ diff --git a/test/fixtures/screenshots/linux/desktop/use-cases/startup-mvp-prototyping-development/_cta-contact_us.png b/test/fixtures/screenshots/linux/desktop/use-cases/startup-mvp-prototyping-development/_cta-contact_us.png index ee88f1ec7..131533809 100644 Binary files a/test/fixtures/screenshots/linux/desktop/use-cases/startup-mvp-prototyping-development/_cta-contact_us.png and b/test/fixtures/screenshots/linux/desktop/use-cases/startup-mvp-prototyping-development/_cta-contact_us.png differ diff --git a/test/fixtures/screenshots/linux/desktop/use-cases/startup-mvp-prototyping-development/_footer.png b/test/fixtures/screenshots/linux/desktop/use-cases/startup-mvp-prototyping-development/_footer.png index e35eefcad..3b3aa8791 100644 Binary files a/test/fixtures/screenshots/linux/desktop/use-cases/startup-mvp-prototyping-development/_footer.png and b/test/fixtures/screenshots/linux/desktop/use-cases/startup-mvp-prototyping-development/_footer.png differ diff --git a/test/fixtures/screenshots/linux/desktop/use-cases/startup-mvp-prototyping-development/_overview.png b/test/fixtures/screenshots/linux/desktop/use-cases/startup-mvp-prototyping-development/_overview.png index fe9b86f8b..5a2037609 100644 Binary files a/test/fixtures/screenshots/linux/desktop/use-cases/startup-mvp-prototyping-development/_overview.png and b/test/fixtures/screenshots/linux/desktop/use-cases/startup-mvp-prototyping-development/_overview.png differ diff --git a/test/fixtures/screenshots/linux/desktop/use-cases/startup-mvp-prototyping-development/_solution.png b/test/fixtures/screenshots/linux/desktop/use-cases/startup-mvp-prototyping-development/_solution.png index ebb1b976b..62224f8a4 100644 Binary files a/test/fixtures/screenshots/linux/desktop/use-cases/startup-mvp-prototyping-development/_solution.png and b/test/fixtures/screenshots/linux/desktop/use-cases/startup-mvp-prototyping-development/_solution.png differ diff --git a/test/fixtures/screenshots/linux/mobile/about_page/achievements.png b/test/fixtures/screenshots/linux/mobile/about_page/achievements.png index 699cf522b..1ad930ab2 100644 Binary files a/test/fixtures/screenshots/linux/mobile/about_page/achievements.png and b/test/fixtures/screenshots/linux/mobile/about_page/achievements.png differ diff --git a/test/fixtures/screenshots/linux/mobile/about_page/values.png b/test/fixtures/screenshots/linux/mobile/about_page/values.png index a6e73bbf0..73ac58adf 100644 Binary files a/test/fixtures/screenshots/linux/mobile/about_page/values.png and b/test/fixtures/screenshots/linux/mobile/about_page/values.png differ diff --git a/test/fixtures/screenshots/linux/mobile/blog/index.png b/test/fixtures/screenshots/linux/mobile/blog/index.png index 2d671f265..02258ed7a 100644 Binary files a/test/fixtures/screenshots/linux/mobile/blog/index.png and b/test/fixtures/screenshots/linux/mobile/blog/index.png differ diff --git a/test/fixtures/screenshots/linux/mobile/blog/index/_pagination.png b/test/fixtures/screenshots/linux/mobile/blog/index/_pagination.png index 2cced9afa..3d1feb720 100644 Binary files a/test/fixtures/screenshots/linux/mobile/blog/index/_pagination.png and b/test/fixtures/screenshots/linux/mobile/blog/index/_pagination.png differ diff --git a/test/fixtures/screenshots/linux/mobile/blog/special/codeblocks/indented.png b/test/fixtures/screenshots/linux/mobile/blog/special/codeblocks/indented.png index c55f239fd..09dcba82b 100644 Binary files a/test/fixtures/screenshots/linux/mobile/blog/special/codeblocks/indented.png and b/test/fixtures/screenshots/linux/mobile/blog/special/codeblocks/indented.png differ diff --git a/test/fixtures/screenshots/linux/mobile/blog/special/mermaid_post.png b/test/fixtures/screenshots/linux/mobile/blog/special/mermaid_post.png index cd6ebd871..42530bd91 100644 Binary files a/test/fixtures/screenshots/linux/mobile/blog/special/mermaid_post.png and b/test/fixtures/screenshots/linux/mobile/blog/special/mermaid_post.png differ diff --git a/test/fixtures/screenshots/linux/mobile/blog/tag.png b/test/fixtures/screenshots/linux/mobile/blog/tag.png index c43d75f15..2eb153dd6 100644 Binary files a/test/fixtures/screenshots/linux/mobile/blog/tag.png and b/test/fixtures/screenshots/linux/mobile/blog/tag.png differ diff --git a/test/fixtures/screenshots/linux/mobile/clients.png b/test/fixtures/screenshots/linux/mobile/clients.png index 1afd72c3e..abca7d3d9 100644 Binary files a/test/fixtures/screenshots/linux/mobile/clients.png and b/test/fixtures/screenshots/linux/mobile/clients.png differ diff --git a/test/fixtures/screenshots/linux/mobile/free_consultation.png b/test/fixtures/screenshots/linux/mobile/free_consultation.png index ff0836019..817d42d79 100644 Binary files a/test/fixtures/screenshots/linux/mobile/free_consultation.png and b/test/fixtures/screenshots/linux/mobile/free_consultation.png differ diff --git a/test/fixtures/screenshots/linux/mobile/friday_report.png b/test/fixtures/screenshots/linux/mobile/friday_report.png new file mode 100644 index 000000000..9ee72a334 Binary files /dev/null and b/test/fixtures/screenshots/linux/mobile/friday_report.png differ diff --git a/test/fixtures/screenshots/linux/mobile/nav/hamburger_menu/services.png b/test/fixtures/screenshots/linux/mobile/nav/hamburger_menu/services.png index 9c4c1dc43..8e6f69139 100644 Binary files a/test/fixtures/screenshots/linux/mobile/nav/hamburger_menu/services.png and b/test/fixtures/screenshots/linux/mobile/nav/hamburger_menu/services.png differ diff --git a/test/fixtures/screenshots/linux/mobile/next/editorial.png b/test/fixtures/screenshots/linux/mobile/next/editorial.png new file mode 100644 index 000000000..eb3bd6f0c Binary files /dev/null and b/test/fixtures/screenshots/linux/mobile/next/editorial.png differ diff --git a/test/fixtures/screenshots/linux/mobile/next/precision.png b/test/fixtures/screenshots/linux/mobile/next/precision.png new file mode 100644 index 000000000..3c1baafd8 Binary files /dev/null and b/test/fixtures/screenshots/linux/mobile/next/precision.png differ diff --git a/test/fixtures/screenshots/linux/mobile/next/rescue-room.png b/test/fixtures/screenshots/linux/mobile/next/rescue-room.png new file mode 100644 index 000000000..1cfed3965 Binary files /dev/null and b/test/fixtures/screenshots/linux/mobile/next/rescue-room.png differ diff --git a/test/fixtures/screenshots/linux/mobile/services.png b/test/fixtures/screenshots/linux/mobile/services.png index ae97580ca..1842de5e4 100644 Binary files a/test/fixtures/screenshots/linux/mobile/services.png and b/test/fixtures/screenshots/linux/mobile/services.png differ diff --git a/test/fixtures/screenshots/linux/mobile/services/fractional_cto.png b/test/fixtures/screenshots/linux/mobile/services/fractional_cto.png index 51f10fdc0..9f00d74b0 100644 Binary files a/test/fixtures/screenshots/linux/mobile/services/fractional_cto.png and b/test/fixtures/screenshots/linux/mobile/services/fractional_cto.png differ diff --git a/test/fixtures/screenshots/linux/mobile/use_cases/startup-mvp-prototyping-development.png b/test/fixtures/screenshots/linux/mobile/use_cases/startup-mvp-prototyping-development.png index f043c8f81..711117685 100644 Binary files a/test/fixtures/screenshots/linux/mobile/use_cases/startup-mvp-prototyping-development.png and b/test/fixtures/screenshots/linux/mobile/use_cases/startup-mvp-prototyping-development.png differ diff --git a/test/fixtures/screenshots/linux/mobile/vibe_code_rescue.png b/test/fixtures/screenshots/linux/mobile/vibe_code_rescue.png index d28341f58..0e204d350 100644 Binary files a/test/fixtures/screenshots/linux/mobile/vibe_code_rescue.png and b/test/fixtures/screenshots/linux/mobile/vibe_code_rescue.png differ diff --git a/test/fixtures/screenshots/macos/desktop/about_page/_achievements.png b/test/fixtures/screenshots/macos/desktop/about_page/_achievements.png index e06e42dee..c6e166e87 100644 Binary files a/test/fixtures/screenshots/macos/desktop/about_page/_achievements.png and b/test/fixtures/screenshots/macos/desktop/about_page/_achievements.png differ diff --git a/test/fixtures/screenshots/macos/desktop/about_page/_cta-contact_us.png b/test/fixtures/screenshots/macos/desktop/about_page/_cta-contact_us.png index 89e6567d2..959ae7198 100644 Binary files a/test/fixtures/screenshots/macos/desktop/about_page/_cta-contact_us.png and b/test/fixtures/screenshots/macos/desktop/about_page/_cta-contact_us.png differ diff --git a/test/fixtures/screenshots/macos/desktop/about_page/_footer.png b/test/fixtures/screenshots/macos/desktop/about_page/_footer.png index beba24ebb..00bd6e828 100644 Binary files a/test/fixtures/screenshots/macos/desktop/about_page/_footer.png and b/test/fixtures/screenshots/macos/desktop/about_page/_footer.png differ diff --git a/test/fixtures/screenshots/macos/desktop/about_page/_values.png b/test/fixtures/screenshots/macos/desktop/about_page/_values.png index b5919ba27..7dffaf399 100644 Binary files a/test/fixtures/screenshots/macos/desktop/about_page/_values.png and b/test/fixtures/screenshots/macos/desktop/about_page/_values.png differ diff --git a/test/fixtures/screenshots/macos/desktop/blog/index/_pagination.png b/test/fixtures/screenshots/macos/desktop/blog/index/_pagination.png index 3685d17b3..e14405aed 100644 Binary files a/test/fixtures/screenshots/macos/desktop/blog/index/_pagination.png and b/test/fixtures/screenshots/macos/desktop/blog/index/_pagination.png differ diff --git a/test/fixtures/screenshots/macos/desktop/blog/special/code_highlight_post.png b/test/fixtures/screenshots/macos/desktop/blog/special/code_highlight_post.png index d4602c57d..3c2c34e3b 100644 Binary files a/test/fixtures/screenshots/macos/desktop/blog/special/code_highlight_post.png and b/test/fixtures/screenshots/macos/desktop/blog/special/code_highlight_post.png differ diff --git a/test/fixtures/screenshots/macos/desktop/blog/special/codeblocks/bare.png b/test/fixtures/screenshots/macos/desktop/blog/special/codeblocks/bare.png index d6578da07..2c59fe5b8 100644 Binary files a/test/fixtures/screenshots/macos/desktop/blog/special/codeblocks/bare.png and b/test/fixtures/screenshots/macos/desktop/blog/special/codeblocks/bare.png differ diff --git a/test/fixtures/screenshots/macos/desktop/blog/special/codeblocks/indented.png b/test/fixtures/screenshots/macos/desktop/blog/special/codeblocks/indented.png index 7259f9ab3..03540cbea 100644 Binary files a/test/fixtures/screenshots/macos/desktop/blog/special/codeblocks/indented.png and b/test/fixtures/screenshots/macos/desktop/blog/special/codeblocks/indented.png differ diff --git a/test/fixtures/screenshots/macos/desktop/blog/special/inline_style_post.png b/test/fixtures/screenshots/macos/desktop/blog/special/inline_style_post.png index b180e4971..fcefee41d 100644 Binary files a/test/fixtures/screenshots/macos/desktop/blog/special/inline_style_post.png and b/test/fixtures/screenshots/macos/desktop/blog/special/inline_style_post.png differ diff --git a/test/fixtures/screenshots/macos/desktop/careers/_footer.png b/test/fixtures/screenshots/macos/desktop/careers/_footer.png index 816332dfb..2a126c033 100644 Binary files a/test/fixtures/screenshots/macos/desktop/careers/_footer.png and b/test/fixtures/screenshots/macos/desktop/careers/_footer.png differ diff --git a/test/fixtures/screenshots/macos/desktop/careers/_newsletter.png b/test/fixtures/screenshots/macos/desktop/careers/_newsletter.png index 816332dfb..2a126c033 100644 Binary files a/test/fixtures/screenshots/macos/desktop/careers/_newsletter.png and b/test/fixtures/screenshots/macos/desktop/careers/_newsletter.png differ diff --git a/test/fixtures/screenshots/macos/desktop/careers/_offers.png b/test/fixtures/screenshots/macos/desktop/careers/_offers.png index 3666d5f52..0c0588748 100644 Binary files a/test/fixtures/screenshots/macos/desktop/careers/_offers.png and b/test/fixtures/screenshots/macos/desktop/careers/_offers.png differ diff --git a/test/fixtures/screenshots/macos/desktop/careers/junior-ruby-on-rails-developer/_footer.png b/test/fixtures/screenshots/macos/desktop/careers/junior-ruby-on-rails-developer/_footer.png index 4d373c384..fae4ba199 100644 Binary files a/test/fixtures/screenshots/macos/desktop/careers/junior-ruby-on-rails-developer/_footer.png and b/test/fixtures/screenshots/macos/desktop/careers/junior-ruby-on-rails-developer/_footer.png differ diff --git a/test/fixtures/screenshots/macos/desktop/clients/_cta-contact_us.png b/test/fixtures/screenshots/macos/desktop/clients/_cta-contact_us.png index 3d37728a3..9a138c0a4 100644 Binary files a/test/fixtures/screenshots/macos/desktop/clients/_cta-contact_us.png and b/test/fixtures/screenshots/macos/desktop/clients/_cta-contact_us.png differ diff --git a/test/fixtures/screenshots/macos/desktop/clients/_footer.png b/test/fixtures/screenshots/macos/desktop/clients/_footer.png index 7742e5e4d..55528f263 100644 Binary files a/test/fixtures/screenshots/macos/desktop/clients/_footer.png and b/test/fixtures/screenshots/macos/desktop/clients/_footer.png differ diff --git a/test/fixtures/screenshots/macos/desktop/clients/_testimonials.png b/test/fixtures/screenshots/macos/desktop/clients/_testimonials.png index b7a3994bf..9a33bd7ad 100644 Binary files a/test/fixtures/screenshots/macos/desktop/clients/_testimonials.png and b/test/fixtures/screenshots/macos/desktop/clients/_testimonials.png differ diff --git a/test/fixtures/screenshots/macos/desktop/clients/agent-inbox/_cta-contact_us.png b/test/fixtures/screenshots/macos/desktop/clients/agent-inbox/_cta-contact_us.png index 7ac0121e5..142c7e27a 100644 Binary files a/test/fixtures/screenshots/macos/desktop/clients/agent-inbox/_cta-contact_us.png and b/test/fixtures/screenshots/macos/desktop/clients/agent-inbox/_cta-contact_us.png differ diff --git a/test/fixtures/screenshots/macos/desktop/clients/agent-inbox/_footer.png b/test/fixtures/screenshots/macos/desktop/clients/agent-inbox/_footer.png index 6c49886d3..41a904ad4 100644 Binary files a/test/fixtures/screenshots/macos/desktop/clients/agent-inbox/_footer.png and b/test/fixtures/screenshots/macos/desktop/clients/agent-inbox/_footer.png differ diff --git a/test/fixtures/screenshots/macos/desktop/contact_us.png b/test/fixtures/screenshots/macos/desktop/contact_us.png index 70d2d0525..347cbb4c6 100644 Binary files a/test/fixtures/screenshots/macos/desktop/contact_us.png and b/test/fixtures/screenshots/macos/desktop/contact_us.png differ diff --git a/test/fixtures/screenshots/macos/desktop/course/chapter.png b/test/fixtures/screenshots/macos/desktop/course/chapter.png index 9663d8991..730f278fd 100644 Binary files a/test/fixtures/screenshots/macos/desktop/course/chapter.png and b/test/fixtures/screenshots/macos/desktop/course/chapter.png differ diff --git a/test/fixtures/screenshots/macos/desktop/homepage/_clients.png b/test/fixtures/screenshots/macos/desktop/homepage/_clients.png index 966a891f3..cb3d01abf 100644 Binary files a/test/fixtures/screenshots/macos/desktop/homepage/_clients.png and b/test/fixtures/screenshots/macos/desktop/homepage/_clients.png differ diff --git a/test/fixtures/screenshots/macos/desktop/homepage/_cta-contact_us.png b/test/fixtures/screenshots/macos/desktop/homepage/_cta-contact_us.png index 71e886746..4571b9137 100644 Binary files a/test/fixtures/screenshots/macos/desktop/homepage/_cta-contact_us.png and b/test/fixtures/screenshots/macos/desktop/homepage/_cta-contact_us.png differ diff --git a/test/fixtures/screenshots/macos/desktop/homepage/_footer.png b/test/fixtures/screenshots/macos/desktop/homepage/_footer.png index ab84a5910..65db5f340 100644 Binary files a/test/fixtures/screenshots/macos/desktop/homepage/_footer.png and b/test/fixtures/screenshots/macos/desktop/homepage/_footer.png differ diff --git a/test/fixtures/screenshots/macos/desktop/homepage/_services.png b/test/fixtures/screenshots/macos/desktop/homepage/_services.png index 1d53adfab..953a3ac77 100644 Binary files a/test/fixtures/screenshots/macos/desktop/homepage/_services.png and b/test/fixtures/screenshots/macos/desktop/homepage/_services.png differ diff --git a/test/fixtures/screenshots/macos/desktop/homepage/_technologies.png b/test/fixtures/screenshots/macos/desktop/homepage/_technologies.png index 36903ce0e..ec4cb226b 100644 Binary files a/test/fixtures/screenshots/macos/desktop/homepage/_technologies.png and b/test/fixtures/screenshots/macos/desktop/homepage/_technologies.png differ diff --git a/test/fixtures/screenshots/macos/desktop/services/_cta-contact_us.png b/test/fixtures/screenshots/macos/desktop/services/_cta-contact_us.png index 6485784f7..291540967 100644 Binary files a/test/fixtures/screenshots/macos/desktop/services/_cta-contact_us.png and b/test/fixtures/screenshots/macos/desktop/services/_cta-contact_us.png differ diff --git a/test/fixtures/screenshots/macos/desktop/services/_footer.png b/test/fixtures/screenshots/macos/desktop/services/_footer.png index a7ec44ba5..b0e86917c 100644 Binary files a/test/fixtures/screenshots/macos/desktop/services/_footer.png and b/test/fixtures/screenshots/macos/desktop/services/_footer.png differ diff --git a/test/fixtures/screenshots/macos/desktop/services/_technologies.png b/test/fixtures/screenshots/macos/desktop/services/_technologies.png index 162696673..9bdef5f97 100644 Binary files a/test/fixtures/screenshots/macos/desktop/services/_technologies.png and b/test/fixtures/screenshots/macos/desktop/services/_technologies.png differ diff --git a/test/fixtures/screenshots/macos/desktop/services/_testimonials-header.png b/test/fixtures/screenshots/macos/desktop/services/_testimonials-header.png index e1fffae6e..0b439154e 100644 Binary files a/test/fixtures/screenshots/macos/desktop/services/_testimonials-header.png and b/test/fixtures/screenshots/macos/desktop/services/_testimonials-header.png differ diff --git a/test/fixtures/screenshots/macos/desktop/services/_use-cases.png b/test/fixtures/screenshots/macos/desktop/services/_use-cases.png index bb14d67cb..cc7d3e7f8 100644 Binary files a/test/fixtures/screenshots/macos/desktop/services/_use-cases.png and b/test/fixtures/screenshots/macos/desktop/services/_use-cases.png differ diff --git a/test/fixtures/screenshots/macos/desktop/services/app_web_development.png b/test/fixtures/screenshots/macos/desktop/services/app_web_development.png index 8d5487f89..1cc60956f 100644 Binary files a/test/fixtures/screenshots/macos/desktop/services/app_web_development.png and b/test/fixtures/screenshots/macos/desktop/services/app_web_development.png differ diff --git a/test/fixtures/screenshots/macos/desktop/services/app_web_development_hero.png b/test/fixtures/screenshots/macos/desktop/services/app_web_development_hero.png index 8d5487f89..1cc60956f 100644 Binary files a/test/fixtures/screenshots/macos/desktop/services/app_web_development_hero.png and b/test/fixtures/screenshots/macos/desktop/services/app_web_development_hero.png differ diff --git a/test/fixtures/screenshots/macos/desktop/services/fractional-cto/_cta-contact_us.png b/test/fixtures/screenshots/macos/desktop/services/fractional-cto/_cta-contact_us.png index f009c4932..99bfa9d69 100644 Binary files a/test/fixtures/screenshots/macos/desktop/services/fractional-cto/_cta-contact_us.png and b/test/fixtures/screenshots/macos/desktop/services/fractional-cto/_cta-contact_us.png differ diff --git a/test/fixtures/screenshots/macos/desktop/services/fractional-cto/_footer.png b/test/fixtures/screenshots/macos/desktop/services/fractional-cto/_footer.png index 604ff437e..60e8a4532 100644 Binary files a/test/fixtures/screenshots/macos/desktop/services/fractional-cto/_footer.png and b/test/fixtures/screenshots/macos/desktop/services/fractional-cto/_footer.png differ diff --git a/test/fixtures/screenshots/macos/desktop/services/fractional-cto/_overview.png b/test/fixtures/screenshots/macos/desktop/services/fractional-cto/_overview.png index 09e5508bc..9dd5d8c18 100644 Binary files a/test/fixtures/screenshots/macos/desktop/services/fractional-cto/_overview.png and b/test/fixtures/screenshots/macos/desktop/services/fractional-cto/_overview.png differ diff --git a/test/fixtures/screenshots/macos/desktop/services/fractional-cto/_testimonials.png b/test/fixtures/screenshots/macos/desktop/services/fractional-cto/_testimonials.png index 38c6511ed..83678b720 100644 Binary files a/test/fixtures/screenshots/macos/desktop/services/fractional-cto/_testimonials.png and b/test/fixtures/screenshots/macos/desktop/services/fractional-cto/_testimonials.png differ diff --git a/test/fixtures/screenshots/macos/desktop/services/fractional_cto.png b/test/fixtures/screenshots/macos/desktop/services/fractional_cto.png index e6b37f8dc..fe0529cc8 100644 Binary files a/test/fixtures/screenshots/macos/desktop/services/fractional_cto.png and b/test/fixtures/screenshots/macos/desktop/services/fractional_cto.png differ diff --git a/test/fixtures/screenshots/macos/desktop/use-cases/_cta-contact_us.png b/test/fixtures/screenshots/macos/desktop/use-cases/_cta-contact_us.png index fc0e5b900..ff761b203 100644 Binary files a/test/fixtures/screenshots/macos/desktop/use-cases/_cta-contact_us.png and b/test/fixtures/screenshots/macos/desktop/use-cases/_cta-contact_us.png differ diff --git a/test/fixtures/screenshots/macos/desktop/use-cases/_footer.png b/test/fixtures/screenshots/macos/desktop/use-cases/_footer.png index fe1347f04..2d060da54 100644 Binary files a/test/fixtures/screenshots/macos/desktop/use-cases/_footer.png and b/test/fixtures/screenshots/macos/desktop/use-cases/_footer.png differ diff --git a/test/fixtures/screenshots/macos/desktop/use-cases/startup-mvp-prototyping-development/_cta-contact_us.png b/test/fixtures/screenshots/macos/desktop/use-cases/startup-mvp-prototyping-development/_cta-contact_us.png index 811392725..8115321b5 100644 Binary files a/test/fixtures/screenshots/macos/desktop/use-cases/startup-mvp-prototyping-development/_cta-contact_us.png and b/test/fixtures/screenshots/macos/desktop/use-cases/startup-mvp-prototyping-development/_cta-contact_us.png differ diff --git a/test/fixtures/screenshots/macos/desktop/use-cases/startup-mvp-prototyping-development/_footer.png b/test/fixtures/screenshots/macos/desktop/use-cases/startup-mvp-prototyping-development/_footer.png index 982a819af..0c621bb16 100644 Binary files a/test/fixtures/screenshots/macos/desktop/use-cases/startup-mvp-prototyping-development/_footer.png and b/test/fixtures/screenshots/macos/desktop/use-cases/startup-mvp-prototyping-development/_footer.png differ diff --git a/test/fixtures/screenshots/macos/desktop/use-cases/startup-mvp-prototyping-development/_overview.png b/test/fixtures/screenshots/macos/desktop/use-cases/startup-mvp-prototyping-development/_overview.png index 7bdd1434f..db0e9f5e7 100644 Binary files a/test/fixtures/screenshots/macos/desktop/use-cases/startup-mvp-prototyping-development/_overview.png and b/test/fixtures/screenshots/macos/desktop/use-cases/startup-mvp-prototyping-development/_overview.png differ diff --git a/test/fixtures/screenshots/macos/desktop/use-cases/startup-mvp-prototyping-development/_solution.png b/test/fixtures/screenshots/macos/desktop/use-cases/startup-mvp-prototyping-development/_solution.png index 07a063990..e9411cdbe 100644 Binary files a/test/fixtures/screenshots/macos/desktop/use-cases/startup-mvp-prototyping-development/_solution.png and b/test/fixtures/screenshots/macos/desktop/use-cases/startup-mvp-prototyping-development/_solution.png differ diff --git a/test/fixtures/screenshots/macos/mobile/about_page/achievements.png b/test/fixtures/screenshots/macos/mobile/about_page/achievements.png index e80307b7c..14c967b55 100644 Binary files a/test/fixtures/screenshots/macos/mobile/about_page/achievements.png and b/test/fixtures/screenshots/macos/mobile/about_page/achievements.png differ diff --git a/test/fixtures/screenshots/macos/mobile/blog/index/_pagination.png b/test/fixtures/screenshots/macos/mobile/blog/index/_pagination.png index 9793dfb4b..6b0722549 100644 Binary files a/test/fixtures/screenshots/macos/mobile/blog/index/_pagination.png and b/test/fixtures/screenshots/macos/mobile/blog/index/_pagination.png differ diff --git a/test/fixtures/screenshots/macos/mobile/blog/special/code_highlight_post.png b/test/fixtures/screenshots/macos/mobile/blog/special/code_highlight_post.png index a1e46a62c..af5f00f86 100644 Binary files a/test/fixtures/screenshots/macos/mobile/blog/special/code_highlight_post.png and b/test/fixtures/screenshots/macos/mobile/blog/special/code_highlight_post.png differ diff --git a/test/fixtures/screenshots/macos/mobile/blog/special/codeblocks/indented.png b/test/fixtures/screenshots/macos/mobile/blog/special/codeblocks/indented.png index 0dda3140a..ebf453e4a 100644 Binary files a/test/fixtures/screenshots/macos/mobile/blog/special/codeblocks/indented.png and b/test/fixtures/screenshots/macos/mobile/blog/special/codeblocks/indented.png differ diff --git a/test/fixtures/screenshots/macos/mobile/course/chapter.png b/test/fixtures/screenshots/macos/mobile/course/chapter.png index b737b64dd..57b1de8b3 100644 Binary files a/test/fixtures/screenshots/macos/mobile/course/chapter.png and b/test/fixtures/screenshots/macos/mobile/course/chapter.png differ diff --git a/test/fixtures/screenshots/macos/mobile/services/fractional_cto.png b/test/fixtures/screenshots/macos/mobile/services/fractional_cto.png index 34cf377ca..87810fb19 100644 Binary files a/test/fixtures/screenshots/macos/mobile/services/fractional_cto.png and b/test/fixtures/screenshots/macos/mobile/services/fractional_cto.png differ diff --git a/test/fixtures/screenshots/macos/mobile/use_cases/startup-mvp-prototyping-development.png b/test/fixtures/screenshots/macos/mobile/use_cases/startup-mvp-prototyping-development.png index 929408050..16832e3be 100644 Binary files a/test/fixtures/screenshots/macos/mobile/use_cases/startup-mvp-prototyping-development.png and b/test/fixtures/screenshots/macos/mobile/use_cases/startup-mvp-prototyping-development.png differ diff --git a/test/support/screenshot_section_config.rb b/test/support/screenshot_section_config.rb deleted file mode 100644 index 2c06a0865..000000000 --- a/test/support/screenshot_section_config.rb +++ /dev/null @@ -1,41 +0,0 @@ -# frozen_string_literal: true - -# Which tolerance a screenshot assertion gets, by name. -# -# Lives apart from ApplicationSystemTestCase so it can be unit-tested without -# booting Hugo, Capybara or the dirty-fixtures guard that file runs on load. -module ScreenshotSectionConfig - # TEMPORARY SHIELD, not configuration. Every value here equalled the old 0.02 - # default, so this table did nothing; now that the default is 0.0001 it is - # load-bearing - it holds ~22 section screenshots at the OLD tolerance while - # their drift is still unmeasured. Delete it once they are measured and - # re-recorded; that is the whole point of keeping it. - SECTION_CONFIGS = { - "cta" => {tolerance: 0.02}, - "cta-contact_us" => {tolerance: 0.02}, - "clients" => {tolerance: 0.02}, - "use-cases" => {tolerance: 0.02}, - "technologies" => {tolerance: 0.02}, - "testimonials" => {tolerance: 0.02}, - "why-us" => {tolerance: 0.02} - }.freeze - - # 0.02 let ~41,472 pixels of a 1920x1080 frame change before failing, so real - # diffs passed green - services/_testimonials-header sat at 0.005923 for a - # whole recolour and reported no change. Repeat runs report IDENTICAL - # difference_levels, i.e. run-to-run noise is 0.0, so the floor only has to - # clear zero: 0.0001 is ~207 px. Calls that need real slack (font-swap, - # animation) still pin their own tolerance. - DEFAULT_SCREENSHOT_CONFIG = {tolerance: 0.0001}.freeze - - def screenshot_config_for(name) - SECTION_CONFIGS.fetch(extract_section_key(name), DEFAULT_SCREENSHOT_CONFIG) - end - - # The key is the tail after "/_", so "services/_technologies" matches the - # "technologies" key but "services/_testimonials-header" does NOT match - # "testimonials" - it is one string, not a prefix. - def extract_section_key(name) - name.to_s.split("/_").last - end -end diff --git a/test/unit/screenshot_section_config_test.rb b/test/unit/screenshot_section_config_test.rb deleted file mode 100644 index 385608f96..000000000 --- a/test/unit/screenshot_section_config_test.rb +++ /dev/null @@ -1,39 +0,0 @@ -# frozen_string_literal: true - -require "minitest/autorun" -require "support/screenshot_section_config" - -# The shield mapping was inert while its values equalled the default. Lowering -# the default made it decide which screenshots keep the OLD tolerance, so the -# "/_" tail rule is now behaviour worth pinning - a near-miss like -# "_testimonials-header" silently inheriting the "testimonials" shield would -# re-blind the gate on that section. -class ScreenshotSectionConfigTest < Minitest::Test - include ScreenshotSectionConfig - - def test_section_name_matching_a_key_is_shielded - assert_equal 0.02, screenshot_config_for("services/_technologies")[:tolerance] - end - - def test_longer_section_name_does_not_match_a_shorter_key - refute_equal 0.02, screenshot_config_for("services/_testimonials-header")[:tolerance] - assert_equal DEFAULT_SCREENSHOT_CONFIG, screenshot_config_for("services/_testimonials-header") - end - - def test_name_without_a_section_gets_the_default - assert_equal DEFAULT_SCREENSHOT_CONFIG, screenshot_config_for("homepage") - assert_equal DEFAULT_SCREENSHOT_CONFIG, screenshot_config_for("blog/post") - end - - def test_key_is_the_tail_after_the_last_section_separator - assert_equal "footer", extract_section_key("services/_footer") - assert_equal "homepage", extract_section_key("homepage") - end - - def test_every_shielded_section_is_looser_than_the_default - ScreenshotSectionConfig::SECTION_CONFIGS.each do |key, config| - assert_operator config[:tolerance], :>, DEFAULT_SCREENSHOT_CONFIG[:tolerance], - "#{key} shields nothing - drop it from SECTION_CONFIGS" - end - end -end