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.
- cargo
- composer
- gem
- golang
- hex
- npm
- pub
- pypi
Énoncé par l'échantillon, mesuré par son contrat
201–225 sur 568, mesurés par des échantillons publiés.
-
npmContrat d'échantillonnode · linux/x64@babel/preset-env@7.29.7
On croita regular expression with named capture groups compiled by Babel will preserve the exact syntactic shape of the pattern in its .source property
Mesuréthe .source property of a named capture group regex transpiled for IE11 evaluates to a string stripped of the capture group names, rather than the original source string
-
npmContrat d'échantillonnode · linux/x64@babel/preset-env@8.0.2
On croit@babel/preset-env defaults the modules option to commonjs, unconditionally transforming import statements into require calls regardless of caller capabilities.
MesuréWhen the modules option is left unset, @babel/preset-env defaults to 'auto' and preserves static import and export declarations unchanged when caller.supportsStaticESM is true, rather than converting them to require calls.
-
npmContrat d'échantillonnode · linux/x64express@4.18.2
On croitLeaving the query parser unconfigured in Express parses query string parameters into flat key-value pairs without constructing nested objects.
MesuréWhen the `query parser` setting is left unset on an Express application, Express defaults `app.get('query parser')` to `'extended'` and uses `qs` to parse bracketed keys like `filter[status]=active` into nested objects rather than flat string keys.
-
npmContrat d'échantillonnode · linux/x64express@4.21.2
On croitres.format directly renders an HTTP 406 response rather than routing a NotAcceptableError to next(), err.types preserves raw format keys like ['html'], and default handlers receive a pre-assigned Content-Type.
Mesuréres.format routes an HTTP 406 NotAcceptableError to next() with canonicalized MIME types in err.types and unconditionally sets Vary: Accept when no registered format matches the Accept header and no default handler is provided
-
npmContrat d'échantillonnode · linux/x64@babel/preset-env@7.24.7
On croitPassing useBuiltIns: true enables polyfilling, corejs: 4 configures next-generation core-js polyfills, and modules: 'esm' enables ES module output.
MesuréPassing useBuiltIns: true throws an Error requiring 'false', 'entry', or 'usage', while passing corejs: 4 with polyfilling throws a RangeError rejecting versions outside core-js@2 and core-js@3.
-
hexContrat d'échantillonelixir 1 · linux/x64req@0.7.2
On croitA nil or empty-list Req header is absent from the internal map, so put_new_header supplies a fallback and get_header distinguishes it from a missing header.
Mesuréassert Req.new retains nil and empty-list header keys with empty-list values while get_header returns [] for both those keys and missing keys
-
hexContrat d'échantillonelixir 1 · linux/x64req@0.7.2
On croitAn into: :self response body can be enumerated from another process, and a Collectable receives response bytes for every status code.
Mesuréassert an into: :self body is a Req.Response.Async tied to the requester pid and enumeration in another process raises RuntimeError
-
hexContrat d'échantillonelixir 1 · linux/x64req@0.7.2
On croitTwo overlapping Req calls made from one request value each enumerate a shared one-shot body independently and both receive all four chunks.
Mesuréassert two overlapping Req.request! calls consume exactly four chunks in total from the shared Agent-backed stream
-
hexContrat d'échantillonelixir 1 · linux/x64req@0.7.2
On croitReq archive decoders return string-keyed maps, compressed JSON decodes without the compressed option, and normalized header access returns scalar strings.
Mesuréassert decode_body leaves the tested gzip JSON bytes unchanged when compressed is false and decodes them after decompress_body runs with compressed true
-
hexContrat d'échantillonelixir 1 · linux/x64req@0.7.2
On croitFollowing a 303 after a JSON POST keeps the POST method, encoded body, and content-type on the redirected request.
Mesuréassert the offline adapter first receives POST /start whose body iodata becomes the exact JSON bytes and whose content-type is application/json
-
hexContrat d'échantillonelixir · linux/x64req@0.7.2
On croitReq preserves Authorization headers across cross-origin redirects by default, retains the POST method when following 301 and 302 redirects, and sends no automatic accept-encoding headers unless compressed is requested.
Mesuréassert same-origin redirects preserve Authorization headers while cross-origin redirects to a different host strip them
-
hexContrat d'échantillonelixir · linux/x64req@0.7.2
On croitPassing a malformed adapter to Req.request/2 should return an error tuple from the API boundary when the request is executed.
Mesuréassert RuntimeError is raised when an adapter returns a non-tuple shape instead of {request, response} or {request, exception}; Req.request/2 is used (not a stubbed plugin path).
-
hexContrat d'échantillonelixir · linux/x64req@0.7.2
On croitMerging a leading-slash path into a base_url in Req replaces the base path following RFC 3986, and setting a body on a default request sends a GET request.
Mesuréassert Req.Steps.put_base_url concatenates leading-slash paths to the base_url path instead of replacing it like RFC 3986 URI.merge
-
hexContrat d'échantillonelixir · linux/x64req@0.7.2
On croitProviding `path_params` should replace a URL placeholder like `{id}` even when `path_params_style` is not set.
MesuréCurly placeholders in the URL are not interpolated by default, so `{id}` stays unreplaced when `path_params_style` is omitted.
-
hexContrat d'échantillonelixir 1 · linux/x64nimble_options@1.1.1
On croittype: nil leaves a NimbleOptions key untyped, the same as omitting :type.
Mesuréassert type: nil accepts nil and rejects tested non-nil values while an omitted type accepts arbitrary terms
-
hexContrat d'échantillonelixir 1 · linux/x64nimble_options@1.1.1
On croitNimbleOptions.new! reports an invalid schema with NimbleOptions.ValidationError, matching value-validation failures.
Mesuréassert NimbleOptions.new! with an unknown type atom raises ArgumentError
-
hexContrat d'échantillonelixir 1 · linux/x64nimble_options@1.1.1
On croitA NimbleOptions custom validator can be an anonymous function that returns a boolean and receives its value after any configured arguments.
Mesuréassert a custom validator uses an MFA 4-tuple, receives the option value first, returns {:ok, transformed} or {:error, message}, and can replace the validated value
-
hexContrat d'échantillonelixir 1 · linux/x64nimble_csv@1.3.0
On croitPassing separator: "\t" to NimbleCSV.RFC4180.parse_string/2 changes that predefined parser's delimiter for the call.
Mesuréassert RFC4180 parse_string with separator: tab and skip_headers: false keeps each tabbed line as one field
-
hexContrat d'échantillonelixir 1 · linux/x64nimble_csv@1.3.0
On croitNimbleCSV.parse_stream reassembles arbitrary byte chunks into complete lines, and the default dumper prefixes spreadsheet formula triggers.
Mesuréassert parsing the arbitrary chunks directly does not yield the complete expected table while RFC4180.to_line_stream reconstructs five complete lines and enables that parse
-
hexContrat d'échantillonelixir 1 · linux/x64ecto@3.14.1
On croitParameterized types in Ecto schemas are represented as three-element tuples of {:parameterized, module, params}, and casting an Ecto.Enum with mapped values accepts the underlying database representation.
Mesuréassert schema type for an Ecto.Enum is a 2-element tuple {:parameterized, {Ecto.Enum, info}} rather than a 3-element tuple, Ecto.Type.parameterized? identifies it, and Ecto.Type.type returns the underlying primitive storage type
-
hexContrat d'échantillonelixir · linux/x64ecto@3.14.1
On croitA competent developer expects put_assoc/4 to associate child records directly onto any struct or changeset, assuming schema association fields default to empty collections or nil when newly constructed.
MesuréCalling put_assoc/4 on a loaded struct with unloaded associations raises RuntimeError because uninitialized associations hold an %Ecto.Association.NotLoaded{} struct rather than nil or [], and Ecto.assoc_loaded?/1 returns false.
-
hexContrat d'échantillonelixir · linux/x64ecto@3.14.1
On croitDeclaring @primary_key {:id, :binary_id, autogenerate: true} on an Ecto schema sets the default foreign key type for belongs_to associations to :binary_id, allowing UUID string foreign key parameters to be cast without explicit type configuration.
Mesuréassert belongs_to defaults the foreign key field type to :id integer even when @primary_key is configured as :binary_id, causing binary UUID string parameters to fail with a cast validation error
-
hexContrat d'échantillonelixir · linux/x64ecto@3.14.1
On croitA competent Ecto user expects `optimistic_lock/2` to protect updates using the row's current stored `:lock_version`, and that unsafely cast `:lock_version` params cannot influence the value used in the conflict check.
MesuréWhen `:lock_version` is not cast, `optimistic_lock/2` keeps the filter at the struct value, but once `:lock_version` is allowed in `cast/3`, `optimistic_lock/2` switches the filter to that user-supplied value, so checks can run against a client-controlled token.
-
hexContrat d'échantillonelixir 1 · linux/x64ecto@3.14.1
On croitcast/4 accepts the underlying database representation for mapped enums, unmapped enums dump as atoms or integers, and load/3 accepts the same string and atom values as cast/4.
Mesuréassert cast accepts declared atom/string keys and mapped database values for Ecto.Enum, normalizing them to the declared atom while rejecting values outside both sets
-
hexContrat d'échantillonelixir 1 · linux/x64ecto@3.14.1
On croitAn Ecto query binding list must name every intermediate join, so `[first, ..., last]` cannot select the outer bindings.
Mesuréassert a query with two joins compiles when a follow-up from expression uses the binding list [first, ..., last]
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.