[{"data":1,"prerenderedAt":129},["ShallowReactive",2],{"page:\u002Ffixtures":3},{"id":4,"title":5,"accent":6,"body":7,"coming":116,"description":117,"extension":118,"headline":119,"intro":120,"meta":121,"navigation":122,"path":123,"repos":124,"seo":125,"stats":126,"statsDetail":6,"statsNote":6,"stem":127,"__hash__":128},"content\u002Ffixtures.md","Fixtures",null,{"type":8,"value":9,"toc":110},"minimark",[10,15,24,27,38,42,49,70,92,107],[11,12,14],"h2",{"id":13},"how-a-module-is-verified","🔬 How a Module Is Verified",[16,17,18,19,23],"p",{},"A contrib module is ",[20,21,22],"strong",{},"verified"," only when a test has enabled it on a real Drupflare site and checked\nsomething the module itself owns: its field types are registered, its routes answer, its services\nresolve, its forms submit. The note under each module below says exactly what was checked.",[16,25,26],{},"Two kinds of check produce a verified row. A hand-written check asserts one thing the module provides, such as a field type or a plugin. A generated check reads the module's own services, routes, libraries and config files from the installed copy, then asserts each one: every declared service registers and instantiates, every route and library resolves, and none of them existed before the module was enabled. The note under the module gives the counts and the version that ran, so a row verified on one release says nothing about another.",[16,28,29,30,33,34],{},"A module that has not had that test is ",[20,31,32],{},"untested",", even when there is every reason to expect it\nworks. ",[35,36,37],"pitch",{},"Nothing is marked verified from reading code or from a similar module passing.",[11,39,41],{"id":40},"️-how-a-production-codebase-is-verified","🏗️ How a Production Codebase Is Verified",[16,43,44,45,48],{},"The codebases below are real Drupal sites, distributions and module suites from government, higher\neducation, non-profits and product teams, each ",[35,46,47],{},"pinned to an exact commit",". Two test lanes run them:",[50,51,52,59],"ul",{},[53,54,55,58],"li",{},[20,56,57],{},"The fixture lane"," clones each codebase at its pinned commit, loads it into a Drupflare site, and\nchecks thirteen capabilities: install, container build, anonymous and logged-in pages, content\ncreate and edit, form submission, files, queues and cron, outbound HTTP, updates, cache rebuilds,\nconfig import, and the codebase's own workflow.",[53,60,61,64,65,69],{},[20,62,63],{},"The conversion lane"," starts the codebase on a conventional PHP server in Docker, moves it onto\nDrupflare with ",[66,67,68],"code",{},"drangler preview",", and checks the copy against the original.",[16,71,72,73,75,76,79,80,83,84,87,88,91],{},"Each capability is recorded as it happened: running normally, running through a Drupflare adapter,\nrunning in a reduced form with the reason written down, or not supported. A codebase is marked\n",[20,74,22],{}," only when every capability passed on its pinned commit in a local ",[66,77,78],{},"wrangler dev",", and\n",[20,81,82],{},"deployed"," when they also passed on a real Worker deployed to a Cloudflare account. Until a lane has run, it is\nlisted as ",[20,85,86],{},"pending",", not assumed. A codebase whose Drupal core does not accept Drupal 11 is listed as ",[20,89,90],{},"needs\nupgrade",": drangler plans its move to 11, and the lanes run it once it is there.",[16,93,94,95,98,99,102,103,106],{},"drangler's own test suite also drives two of these codebases through ",[66,96,97],{},"drangler modify"," against a running site in its e2e lane: ",[66,100,101],{},"simple_oauth_21"," installs its registry dependency, uploads and enables,\nand ",[66,104,105],{},"entity_reference_integrity",", whose own routing file stops the enable, is reported as refused\nwhile the site keeps serving.",[16,108,109],{},"The lanes are new in 1.0.3 and the first runs are landing now. The table below is regenerated from\nthe lane results, so a row changes only when a run on its pinned commit records something.",{"title":111,"searchDepth":112,"depth":112,"links":113},"",2,[114,115],{"id":13,"depth":112,"text":14},{"id":40,"depth":112,"text":41},[],"Every Drupal module and production codebase Drupflare is tested against, and exactly how each one is verified.","md","Tested Against Real Drupal","A claim of compatibility is only as good as the test behind it. Every module and codebase on this page is checked by enabling or converting it on a real Drupflare site and asserting what it does, never by reading its source and guessing.",{},true,"\u002Ffixtures",[],{"title":5,"description":117},[],"fixtures","WcrJUdP2HdZdFxAo8xxBUABpne_rzNTZ5-v4e8pKJYg",1793683736804]