The load fixture gave every clip its own source, so it could not reproduce the
request amplification a real project produces: opening a 273-clip project issues
337 media requests for 79 files on disk, one track.mp3 seven-plus times. A gate
built on the old shape would measure nothing.
Add mediaSourceCount/mediaClipCount, independently controllable, with clips
round-robining over the sources so every source is reused at least seven times.
Sources are real, browser-decodable media generated deterministically: 32x32
solid PNGs, one-second 8 kHz silent WAVs, and a checked-in 1,684-byte H.264 clip
each source varies with an ignored trailing free box, so no two sources are
byte-identical and no content-addressed cache can collapse them.
Media defaults to off, so existing zero-media generation is unchanged.
Generates a real HyperFrames project at a parameterised clip and track
count, rather than injecting TimelineElement objects into the store the
way the existing timeline fixture does. Only a project on disk exercises
the open pipeline the load gate needs to measure.
Reproduces the conditions that make that pipeline expensive: most clips
carry no authored DOM id, and same-kind clips share a class name.
The output is not checked in. At 1,000 clips it is ~9,200 lines of fully
derivable markup that nothing reads; the tests generate into temp dirs
and the gate generates the size it needs at run time.