Automattic / Automattic/php-toolkit
push-md: e2e suite only exercises the unscoped source, not the built (scoped) zip
- Lingua principale
- PHP
- Stelle
- 22
- Fork
- 5
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Descrizione
## Summary
The push-md e2e suite never functionally imports the **built (scoped) plugin zip** — it mounts the **unscoped source tree** directly. This is the testing gap that let the scoping regression in #68 (fixed by #69) ship in v0.6.6 / v0.6.7 uncaught: clone worked, but the first Markdown **import/push** fataled on the scoped build, and no automated test loaded the scoped artifact.
## Details
`bin/run-push-md-playground.sh` boots Playground against the live source, not the release artifact:
```bash
--mount="$ROOT_DIR:/workspace"
--mount="$ROOT_DIR/vendor:/wordpress/wp-content/vendor"
--mount="$ROOT_DIR/components:/wordpress/wp-content/components"
--mount="$ROOT_DIR/plugins/push-md:/wordpress/wp-content/plugins/push-md"
```
So the e2e flow runs with:
- the **unscoped** namespaces (`Nette\…`, `League\…`, …), where inline qualified references resolve fine, and
- the dev bootstrap / composer autoloader, **not** the generated/scoped `php-toolkit/vendor/composer/*` classmap.
`bin/build-plugins.sh` produces the scoped `dist/plugins/push-md.zip`, but it's only checked **structurally** by `bin/inspect-push-md-zip.sh` (file presence + content greps). Nothing ever **loads** the scoped classes through their autoloader and pushes Markdown, so a scoping bug that fatals at class-load time passes every gate.
## Proposed follow-up
Add an e2e path that exercises the **built zip**:
1. `bash bin/build-plugins.sh` to produce `dist/plugins/push-md.zip`.
2. Install **that zip** on a fresh Playground site (a blueprint step that installs the artifact, rather than mounting source).
3. Run the existing import/push flow: `git clone …/wp-json/git/v1/md.git`, edit a `post/*.md`, commit, `git push`.
4. Assert success (no `bad line length character:
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Direzione di ricerca
Inizia da bin/build-plugins.sh, bin/run-push-md-playground.sh, bin/inspect-push-md-zip.sh e dal workflow push-md-e2e.yml esistente per tracciare come viene compilato ed eseguito l’attuale flusso con il codice sorgente montato. Aggiungi un nuovo percorso Playground che installi dist/plugins/push-md.zip, quindi esegui il flusso esistente di clonazione, modifica di Markdown, commit e push. Il lavoro è completato quando l’artefatto nell’ambito viene caricato correttamente, il push riesce senza un errore fatal o bad line length character e il percorso dell’artefatto viene eseguito in CI.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- bash, docker, git, github-actions, php
- Ambito
- build-system, ci-cd, testing
- Tipo di issue
- Funzionalità
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Tranquilla
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 68/100