Lo que la red encontró
Cada línea de abajo es una medición, no una opinión. Todas enlazan a una muestra publicada cuyo contract se ejecuta en un contenedor fijado y sin red, así que puedes volver a ejecutarlo y contradecir el resultado.
El sistema y el runtime proceden del entorno registrado por la muestra; al filtrar se omiten los datos ausentes.
597 hallazgos en 8 ecosistemas.
- cargo
- composer
- gem
- golang
- hex
- npm
- pub
- pypi
Lo que dice la muestra y mide su contrato
401–425 de 568, medidos por muestras publicadas.
-
golangContrato de muestrago · linux/x64github.com/go-chi/chi/v5@v5.3.1
Se creeapplying path-modifying middleware like StripSlashes per-route with r.With() strips trailing slashes for that specific route and serves a 200 OK response
Medidoassert per-route With(StripSlashes) fails with 404 on trailing slash requests because tree matching precedes route middleware
-
golangContrato de muestrago · linux/x64github.com/go-chi/chi/v5@v5.2.5
Se creeIf no routes are configured on `middleware.RouteHeaders`, the wrapped request flow is inert and should skip calling the downstream handler.
Medido`middleware.RouteHeaders().Handler` with an empty router must call the wrapped handler exactly once.
-
golangContrato de muestrago 1.26 · linux/x64github.com/go-chi/chi/v5@v5.3.1
Se creeA request using an unregistered HTTP method is handled by NotFound in the same way as a request for an unknown path.
Medidochi.Mux.Get routes GET /widgets to the registered handler with status 200, Content-Type application/json, and body {"widgets":[]} followed by a newline.
-
gemContrato de muestraruby · linux/x64zeitwerk@2.8.3
Se creeCalling loader.reload reloads modified source files by default, and reloading can be enabled at any point in the loader lifecycle after setup.
MedidoCalling loader.reload raises Zeitwerk::ReloadingDisabledError by default because reloading is disabled out of the box in major version 2, requiring an explicit loader.enable_reloading call before setup.
-
gemContrato de muestraruby · linux/x64zeitwerk@2.8.3
Se creeCalling loader.unload completely tears down a Zeitwerk loader and releases its root directories for re-use by new loaders or for garbage collection.
Medidoassert calling loader.unload clears constants and autoloads but retains the loader in Zeitwerk::Registry.loaders and Zeitwerk::Loader.all_dirs, blocking any new loader from managing that root directory with Zeitwerk::Error until loader.unregister is explicitly called
-
gemContrato de muestraruby · linux/x64zeitwerk@2.8.3
Se creeCalling loader.reload on a configured Zeitwerk autoloader unloads and refreshes constants without requiring opt-in configuration before setup, or reloading can be enabled at runtime whenever code changes occur.
Medidoassert calling loader.reload on a default loader raises Zeitwerk::ReloadingDisabledError because reloading is disabled by default and loader.enable_reloading must be called before setup, whereas calling enable_reloading after setup raises Zeitwerk::Error
-
gemContrato de muestraruby · linux/x64zeitwerk@2.8.3
Se creeA model might expect reloading to be a runtime setting, so enabling it after setup should allow reload to work and unloading should always clear loaded constants.
MedidoCalling reload before enable_reloading raises Zeitwerk::ReloadingDisabledError, even after setup succeeds and autoloads are installed
-
gemContrato de muestraruby · linux/x64zeitwerk@2.8.3
Se creeloader.collapse strips all directory nesting within the target directory so nested files define top-level constants in the parent namespace
Medidoassert loader.collapse removes only the collapsed directory from constant paths so files in subdirectories define namespaced constants (e.g. concerns/oauth/token.rb defines Oauth::Token) rather than flattening the entire subtree into the parent namespace (Token)
-
gemContrato de muestraruby · linux/x64sinatra@4.2.1
Se creeReturning a Ruby Hash from a Sinatra route block either serializes to JSON or raises a type error, and returning a two-element array of a status integer and a hash sets the response status and headers.
Medidoassert a bare Hash returned from a route is treated as an Enumerable body yielding key-value array pairs with text/html rather than serializing to JSON
-
gemContrato de muestraruby · linux/x64sinatra@4.2.1
Se creeRaising a custom exception in a route is handled by its error block in development mode while unhandled exceptions return 500 in test mode, halt bodies are never replaced by status handlers, and returning a Symbol or Integer sets the body or status identically to the status helper.
Medidoassert in development mode default show_exceptions intercepts custom exceptions with an HTML backtrace rather than running the error handler
-
gemContrato de muestraruby · linux/x64mustermann@4.0.0
Se creeA wildcard capture that has no characters before the next separator is absent, so a capture like `path` should be nil.
MedidoA trailing slash on a wildcard route match yields an empty string capture rather than an absent nil value.
-
gemContrato de muestraruby · linux/x64json@2.9.1
Se creeA Hash with keys 1 and '1' should preserve both entries after a round-trip because the two keys are different in Ruby.
MedidoJSON.generate turns both the integer key 1 and string key '1' into a duplicate JSON member name '1', so it emits two members but the parser can no longer distinguish the originals.
-
gemContrato de muestraruby · linux/x64faraday-net_http@3.4.4
Se creeA confident model expects multiple requests inside a Net::HTTP Faraday `in_parallel` block to be dispatched concurrently.
MedidoIn `in_parallel`, the second request starts at or after the first request has finished, showing that this adapter does not actually execute requests in parallel.
-
gemContrato de muestraruby · linux/x64faraday-net_http@3.4.4
Se creeFaraday's NetHttp adapter accurately extracts quoted MIME charset parameters to transcode response bodies, preserves nil for empty 204 bodies, and automatically stringifies non-string header values.
Medidoassert Faraday NetHttp adapter falls back to Encoding::ASCII_8BIT when Content-Type contains a quoted charset parameter (such as charset=\"iso-8859-1\") rather than setting the parsed encoding
-
gemContrato de muestraruby · linux/x64faraday-net_http@3.4.4
Se creeSetting `ssl.verify = false` for an HTTPS Faraday request is expected to also disable Net::HTTP hostname verification.
MedidoA `verify: false` TLS option only changes `verify_mode`; Faraday only sets `verify_hostname` when `verify_hostname` is explicitly passed in SSL options.
-
composerContrato de muestraphp 8.5 · linux/x64symfony/http-foundation@8.1.4
Se creeRequest::getPayload() follows Content-Type and merges all request inputs, while passing an already encoded JSON string to JsonResponse sends that document unchanged.
Medidoassert Request::getPayload prefers a non-empty parsed form bag over query and raw JSON, returns a defensive InputBag clone, and InputBag::get rejects nested values that InputBag::all retrieves
-
composerContrato de muestraphp · linux/x64symfony/console@8.1.4
Se creeA model may expect an omitted `InputOption::VALUE_NEGATABLE` option to be returned as `false`.
MedidoWhen a command with `InputOption::VALUE_NEGATABLE` is executed without passing that option, `InputInterface::getOption` returns `null`.
-
cargoContrato de muestrarust · linux/x64sqlx@0.8.6
Se creeDeclaring a struct field as Option<T> allows sqlx::FromRow to decode as None when the column is omitted from the SQL query projection.
MedidoOmitting an Option<T> column from a SELECT query causes FromRow to fail with ColumnNotFound instead of decoding as None
-
cargoContrato de muestrarust · linux/x64tracing@0.1.44
Se creeA subscriber installed with with_default is often assumed to compose with an existing default and propagate to threads spawned inside its closure.
Medidoassert Span::record updates a field declared with tracing::field::Empty and the event observes the entered span scope
-
cargoContrato de muestrarust · linux/x64tower-layer@0.3.3
Se creeA competent developer would expect a shared `&Layer` to behave like independent applications and not accumulate per-wrap side effects when reused.
Medidoassert that the same borrowed layer can be used for multiple `Layer::layer` calls and the call count is cumulative
-
cargoContrato de muestrarust · linux/x64reqwest@0.13.4
Se creePolicy::limited(0) is equivalent to Policy::none(), and a custom redirect attempt's previous list excludes the initial request URL.
MedidoPolicy::none returns the original 302 response without treating the redirect as an error
-
npmContrato de muestranode · linux/x64marked@18.0.9
Se creeCustom renderer methods in marked receive positional primitive arguments like heading(text, level) and link(href, title, text) with child tokens pre-rendered into HTML strings.
MedidoOverriding a custom renderer method with legacy positional parameters like heading(text, level) passes the AST token object as the first parameter and undefined as the second, silently rendering undefined and object Object in place of tag attributes and text
-
npmContrato de muestranode · linux/x64luxon@3.5.0
Se creeParsing an invalid ISO date string or out-of-range calendar date in Luxon throws an Error or rolls over to a valid date.
MedidoDateTime.fromISO with an unparsable string or impossible calendar date does not throw and does not roll over, returning an invalid DateTime object with isValid false and toISO null
-
npmContrato de muestranode · linux/x64luxon@3.7.2
Se creeA correct `luxon` package with an ESM entry point allows `import { DateTime } from "luxon"` to execute normally from ES module code.
MedidoImporting `luxon` through a named ESM import from `node_modules` returns a usable `DateTime` export.
-
npmContrato de muestranode · linux/x64core-js@3.40.0
Se creeObject.groupBy returns a plain Object instance inheriting from Object.prototype with standard methods such as toString and hasOwnProperty.
MedidoObject.groupBy returns an object with a null prototype rather than Object.prototype, making instanceof Object evaluate to false and omitting standard methods like toString.
Cómo comprobar cualquier línea de aquí
Abre la muestra, lee su contract y ejecútalo. El contract es la propia prueba de la muestra: se ejecuta sin red en un contenedor fijado, y el recibo firmado de esa ejecución es lo que la red guarda. Nada de esto depende de cómo leamos una biblioteca, solo de lo que la biblioteca hizo.
Algunas muestras publicadas no están en esta página. Su contrato pasó y la muestra está activa, pero ninguna línea de ese contrato se lee como una frase. Una aserción como expect(x).toBe(1), puesta junto a la creencia que comprueba, no le dice nada a quien lee. Preferimos dejarlas fuera antes que publicar pruebas que nadie puede leer.