CodeSampleX

Ce que le réseau a trouvé

Chaque ligne ci-dessous est une mesure, pas un avis. Chacune renvoie à un échantillon publié dont le contract s'exécute dans un conteneur épinglé, réseau coupé : vous pouvez le rejouer et contredire le résultat.

Le système et le runtime viennent de l'environnement enregistré par l'échantillon ; les dimensions absentes sont exclues.

597 constats sur 8 écosystèmes.

Énoncé par l'échantillon, mesuré par son contrat

251–275 sur 568, mesurés par des échantillons publiés.

  1. npmContrat d'échantillonnode · linux/x64happy-dom@20.11.2

    On croitA competent reader expects that omitting script-evaluation settings in happy-dom still evaluates inline `<script>` blocks like a browser would.

    MesuréIn happy-dom 20.11.2, constructing `Window` without `settings.enableJavaScriptEvaluation` means inline script execution is disabled, so a script that sets `window.__ran = true` leaves `window.__ran` undefined.

  2. npmContrat d'échantillonnode · linux/x64jest@30.4.2

    On croitA strong implementation instinct is that `jest.setSystemTime` accepts any date-like input, including ISO strings, when using fake timers.

    MesuréCalling `jest.setSystemTime` with an ISO string under fake timers throws; it only accepts a `Date` object or a numeric epoch timestamp.

  3. npmContrat d'échantillonnode · linux/x64express@4.19.1

    On croitA seasoned developer expects `app.configure(...)` to remain available in Express 4 as it did in v3.

    MesuréIn Express 4.19.1, `app.configure` is undefined and calling `app.configure(...)` throws `TypeError`, showing the v3-style helper no longer exists.

  4. npmContrat d'échantillonnode · linux/x64es-toolkit@1.49.0

    On croitMost callers assume the second argument of `chunk` defaults to 1 when omitted.

    MesuréCalling `chunk([1, 2, 3])` must throw a runtime error because `size` is required.

  5. npmContrat d'échantillonnode · linux/x64express@4.19.1

    On croitForwarded client IP headers should always be reflected in `req.ip` even when `trust proxy` is disabled.

    MesuréA request to `/ip` without `trust proxy` ignores `X-Forwarded-For` and `req.ip` is not the forwarded client value.

  6. npmContrat d'échantillonnode · linux/x64commander@10.0.0

    On croitA leading space before a positional signature is ignored by Commander, so `program.arguments(' <name>')` is equivalent to `program.arguments('<name>')`.

    MesuréIn Commander 10, a leading-space argument signature is not ignored, so parsing `['node', 'app', 'only']` with `new Command().arguments(' <required> [optional]')` throws `commander.missingArgument` and does not accept a single positional argument.

  7. npmContrat d'échantillonnode · linux/x64commander@15.0.0

    On croitWhen both `--cache` and `--no-cache` are defined, omitting both options should leave `cache` as `true` because the negated form implies a true default.

    MesuréWith both `--cache` and `--no-cache`, parsing without either flag leaves `program.opts().cache` as `undefined`, even though the negated option alone would default to true.

  8. npmContrat d'échantillonnode · linux/x64bun@1.3.14

    On croitCalling server.stop() on a Bun.serve HTTP server terminates all active client connections and immediately frees server resources.

    Mesuréassert server.pendingRequests is 1 while an in-flight request is being processed by the fetch handler

  9. npmContrat d'échantillonnode · linux/x64chalk@6.0.0

    On croitA caller should get the same kind of rejection for all obviously malformed `chalk.hex(...)` inputs.

    Mesuré`chalk.hex('')('x')` also returns black 24-bit ANSI output instead of an error.

  10. npmContrat d'échantillonnode · linux/x64bun@1.3.14

    On croitBun.password.verify returns false whenever a candidate password fails to verify against an unparseable, legacy, or corrupted hash string.

    MesuréBun.password.verify throws an Error with code PASSWORD_UNSUPPORTED_ALGORITHM for arbitrary non-empty hash strings and PASSWORD_INVALID_ENCODING for malformed prefixes rather than returning false, while an empty string hash returns false.

  11. npmContrat d'échantillonnode · linux/x64@babel/preset-env@8.0.2

    On croitA shared preset-env tuple can be safely mutated between runs so each transform picks up the latest target value.

    MesuréCalling transformAsync twice with the same preset tuple and then changing `targets` in between does not recompute the tuple for the second run.

  12. npmContrat d'échantillonnode 22.18 · linux/x64@babel/core@8.0.1

    On croitBecause @babel/core 8 ships as ESM, `require('@babel/core')` must always throw ERR_REQUIRE_ESM.

    MesuréCommonJS require and ESM import expose the same transformSync function.

  13. golangContrat d'échantillongo 1.26 · linux/x64github.com/gin-gonic/gin@v1.12.0

    On croitAbortWithStatusJSON immediately returns from the current handler, so code after it cannot run and an explicit return is unnecessary.

    Mesuréassert binding an empty required name with ShouldBindJSON lets the handler choose HTTP 422 and a JSON error response

  14. npmContrat d'échantillonnode · linux/x64@babel/core@8.0.1

    On croitBecause Babel 8 presents an ES module API, `require('@babel/core')` throws `ERR_REQUIRE_ESM` and only dynamic `import()` can reach `transformSync`.

    MesuréIn @babel/core 8.0.1, `require('@babel/core')` returns an API object whose `transformSync` member is a function.

  15. npmContrat d'échantillonnode · linux/x64@babel/core@7.29.6

    On croitA model would likely expect Babel to treat `new super()` like a standard callable super-expression form and return transpiled output instead of throwing.

    Mesuré`transformSync` does not return transformed code for `class A extends class {} { constructor() { new super() } }`; it throws a syntax error for this invalid `new super()` form.

  16. pubContrat d'échantillondart · linux/x64collection@1.18.0

    On croitIterableExtension.sample provides a randomly ordered subset of elements, meaning that requesting a sample equal to the collection's size will return a shuffled permutation.

    MesuréBefore 1.19.0, calling sample() on an iterable requesting its full length returns the elements in their exact original order, rather than a randomly shuffled permutation.

  17. gemContrat d'échantillonruby · linux/x64zeitwerk@2.6.0

    On croitZeitwerk silently skips a file that defines a different constant than its path implies

    MesuréAccessing Foo when lib/foo.rb defines Bar raises Zeitwerk::NameError and the error identifies the missing expected constant Foo.

  18. gemContrat d'échantillonruby · linux/x64zeitwerk@2.8.3

    On croitCalling Zeitwerk::Loader.setup multiple times on the same loader raises a Zeitwerk::Error

    MesuréSecond call to loader.setup does NOT raise an error

  19. gemContrat d'échantillonruby · linux/x64zeitwerk@2.8.3

    On croitCalling loader.reload refreshes the source code for a constant while keeping the same Class object bound to that name, so existing instances continue to satisfy is_a?(Widget) and case/when Widget after reload.

    MesuréAfter loader.reload, Widget is a different Class object than it was before reload — klass_before.equal?(klass_after) is false — meaning reload undefines the constant and installs a new autoload rather than patching the existing class in place.

  20. gemContrat d'échantillonruby · linux/x64zeitwerk@2.8.3

    On croitCalling reload and unload-like operations is enough to refresh or remove constants, so explicit pre-setup reloading configuration should not matter.

    Mesuréassert a loader without `enable_reloading` raises `Zeitwerk::ReloadingDisabledError` on `reload` after `setup`, and then `unload` keeps a previously loaded constant in place

  21. gemContrat d'échantillonruby · linux/x64zeitwerk@2.8.3

    On croitpush_dir without an explicit namespace parameter scopes autoloaded constants under a module matching the directory name.

    Mesuréassert push_dir with namespace left unset defaults the root namespace to Object rather than inferring a namespace from the directory name, mapping the directory to Object in all_expected_cpaths and expecting unprefixed top-level constants

  22. gemContrat d'échantillonruby · linux/x64zeitwerk@2.8.2

    On croitLoader callback APIs are expected to accept only bare constant names, so `::User` should be rejected as an invalid path.

    Mesuréassert `Zeitwerk::Loader#on_load` accepts a leading double-colon constant path and does not raise at registration (`::User`)

  23. gemContrat d'échantillonruby · linux/x64sorbet-runtime@0.6.13427

    On croitThe legacy `pii:` property option is still accepted as a backward-compatible alias for `sensitivity:` in sorbet-runtime v0.x.

    Mesurédefining a `T::Struct` prop with `pii:` raises ArgumentError and the message says `pii:` was renamed to `sensitivity:`

  24. gemContrat d'échantillonruby · linux/x64sorbet-runtime@0.6.13427

    On croitBecause T::Struct declares prop types and the .new constructor raises TypeError when a value does not match, from_hash — the documented deserialization path — applies the same check and raises on mismatched types.

    MesuréT::Struct.from_hash accepts a String value for a prop declared Integer and returns it unchanged without raising TypeError, while T::Struct.new raises TypeError for the identical input — proving that the deserialization path skips the sig-based check the constructor applies

  25. gemContrat d'échantillonruby · linux/x64sorbet-runtime@0.6.13427

    On croitReplacing a `sig`-annotated method with a plain method definition should discard the prior runtime signature metadata so internal signature lookup returns no stale declaration for that method key.

    MesuréAfter redefining a typed method without adding a new `sig`, `T::Private::Methods.signature_for_method` still returns a `T::Private::Methods::Signature` for that method key instead of clearing it.

Comment vérifier n'importe quelle ligne

Ouvrez l'échantillon, lisez son contract, exécutez-le. Le contract est le test propre à l'échantillon : il tourne hors réseau dans un conteneur épinglé, et c'est le reçu signé de cette exécution que le réseau conserve. Rien ici ne repose sur notre lecture d'une bibliothèque, seulement sur ce qu'elle a fait.

Certains échantillons publiés ne figurent pas sur cette page. Leur contrat est passé et l'échantillon est en ligne, mais aucune ligne de ce contrat ne se lit comme une phrase. Une assertion comme expect(x).toBe(1), placée à côté de la croyance qu'elle vérifie, n'apprend rien au lecteur. Nous préférons les omettre plutôt que publier une preuve que personne ne peut lire.