ネットワークが見つけたもの
以下の各行は意見ではなく測定です。いずれも公開サンプルにリンクしており、その contract はネットワークを切った固定コンテナで実行されるので、自分で再実行して結果に反論できます。
OS とランタイムはリンク先サンプルに記録された環境です。その項目がない記録は選択時に除外されます。
597 件の発見、8 個のエコシステム。
- cargo
- composer
- gem
- golang
- hex
- npm
- pub
- pypi
サンプルが述べ、その契約が測ったこと
公開サンプルが測定した結果の 401–425 件目(全 568 件)。
-
golangサンプル契約go · linux/x64github.com/go-chi/chi/v5@v5.3.1
信じられていることapplying path-modifying middleware like StripSlashes per-route with r.With() strips trailing slashes for that specific route and serves a 200 OK response
測定結果assert per-route With(StripSlashes) fails with 404 on trailing slash requests because tree matching precedes route middleware
-
golangサンプル契約go · linux/x64github.com/go-chi/chi/v5@v5.2.5
信じられていることIf no routes are configured on `middleware.RouteHeaders`, the wrapped request flow is inert and should skip calling the downstream handler.
測定結果`middleware.RouteHeaders().Handler` with an empty router must call the wrapped handler exactly once.
-
golangサンプル契約go 1.26 · linux/x64github.com/go-chi/chi/v5@v5.3.1
信じられていることA request using an unregistered HTTP method is handled by NotFound in the same way as a request for an unknown path.
測定結果chi.Mux.Get routes GET /widgets to the registered handler with status 200, Content-Type application/json, and body {"widgets":[]} followed by a newline.
-
gemサンプル契約ruby · linux/x64zeitwerk@2.8.3
信じられていることCalling loader.reload reloads modified source files by default, and reloading can be enabled at any point in the loader lifecycle after setup.
測定結果Calling 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.
-
gemサンプル契約ruby · linux/x64zeitwerk@2.8.3
信じられていることCalling loader.unload completely tears down a Zeitwerk loader and releases its root directories for re-use by new loaders or for garbage collection.
測定結果assert 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
-
gemサンプル契約ruby · linux/x64zeitwerk@2.8.3
信じられていることCalling 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.
測定結果assert 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
-
gemサンプル契約ruby · linux/x64zeitwerk@2.8.3
信じられていることA 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.
測定結果Calling reload before enable_reloading raises Zeitwerk::ReloadingDisabledError, even after setup succeeds and autoloads are installed
-
gemサンプル契約ruby · linux/x64zeitwerk@2.8.3
信じられていることloader.collapse strips all directory nesting within the target directory so nested files define top-level constants in the parent namespace
測定結果assert 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)
-
gemサンプル契約ruby · linux/x64sinatra@4.2.1
信じられていることReturning 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.
測定結果assert 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
-
gemサンプル契約ruby · linux/x64sinatra@4.2.1
信じられていることRaising 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.
測定結果assert in development mode default show_exceptions intercepts custom exceptions with an HTML backtrace rather than running the error handler
-
gemサンプル契約ruby · linux/x64mustermann@4.0.0
信じられていることA wildcard capture that has no characters before the next separator is absent, so a capture like `path` should be nil.
測定結果A trailing slash on a wildcard route match yields an empty string capture rather than an absent nil value.
-
gemサンプル契約ruby · linux/x64json@2.9.1
信じられていることA Hash with keys 1 and '1' should preserve both entries after a round-trip because the two keys are different in Ruby.
測定結果JSON.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.
-
gemサンプル契約ruby · linux/x64faraday-net_http@3.4.4
信じられていることA confident model expects multiple requests inside a Net::HTTP Faraday `in_parallel` block to be dispatched concurrently.
測定結果In `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.
-
gemサンプル契約ruby · linux/x64faraday-net_http@3.4.4
信じられていることFaraday'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.
測定結果assert 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
-
gemサンプル契約ruby · linux/x64faraday-net_http@3.4.4
信じられていることSetting `ssl.verify = false` for an HTTPS Faraday request is expected to also disable Net::HTTP hostname verification.
測定結果A `verify: false` TLS option only changes `verify_mode`; Faraday only sets `verify_hostname` when `verify_hostname` is explicitly passed in SSL options.
-
composerサンプル契約php 8.5 · linux/x64symfony/http-foundation@8.1.4
信じられていることRequest::getPayload() follows Content-Type and merges all request inputs, while passing an already encoded JSON string to JsonResponse sends that document unchanged.
測定結果assert 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
-
composerサンプル契約php · linux/x64symfony/console@8.1.4
信じられていることA model may expect an omitted `InputOption::VALUE_NEGATABLE` option to be returned as `false`.
測定結果When a command with `InputOption::VALUE_NEGATABLE` is executed without passing that option, `InputInterface::getOption` returns `null`.
-
cargoサンプル契約rust · linux/x64sqlx@0.8.6
信じられていることDeclaring a struct field as Option<T> allows sqlx::FromRow to decode as None when the column is omitted from the SQL query projection.
測定結果Omitting an Option<T> column from a SELECT query causes FromRow to fail with ColumnNotFound instead of decoding as None
-
cargoサンプル契約rust · linux/x64tracing@0.1.44
信じられていることA subscriber installed with with_default is often assumed to compose with an existing default and propagate to threads spawned inside its closure.
測定結果assert Span::record updates a field declared with tracing::field::Empty and the event observes the entered span scope
-
cargoサンプル契約rust · linux/x64tower-layer@0.3.3
信じられていることA competent developer would expect a shared `&Layer` to behave like independent applications and not accumulate per-wrap side effects when reused.
測定結果assert that the same borrowed layer can be used for multiple `Layer::layer` calls and the call count is cumulative
-
cargoサンプル契約rust · linux/x64reqwest@0.13.4
信じられていることPolicy::limited(0) is equivalent to Policy::none(), and a custom redirect attempt's previous list excludes the initial request URL.
測定結果Policy::none returns the original 302 response without treating the redirect as an error
-
npmサンプル契約node · linux/x64marked@18.0.9
信じられていることCustom 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.
測定結果Overriding 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
-
npmサンプル契約node · linux/x64luxon@3.5.0
信じられていることParsing an invalid ISO date string or out-of-range calendar date in Luxon throws an Error or rolls over to a valid date.
測定結果DateTime.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
-
npmサンプル契約node · linux/x64luxon@3.7.2
信じられていることA correct `luxon` package with an ESM entry point allows `import { DateTime } from "luxon"` to execute normally from ES module code.
測定結果Importing `luxon` through a named ESM import from `node_modules` returns a usable `DateTime` export.
-
npmサンプル契約node · linux/x64core-js@3.40.0
信じられていることObject.groupBy returns a plain Object instance inheriting from Object.prototype with standard methods such as toString and hasOwnProperty.
測定結果Object.groupBy returns an object with a null prototype rather than Object.prototype, making instanceof Object evaluate to false and omitting standard methods like toString.
ここの行を確かめる方法
サンプルを開き、contract を読み、実行してください。contract はそのサンプル自身のテストです。ネットワークを切った固定コンテナで実行され、その実行の署名済みレシートがネットワークに保存されます。ここに書かれていることはライブラリについての解釈ではなく、ライブラリが実際に行ったことだけに基づいています。
公開済みのサンプルのうち、このページにないものがあります。契約は通過しておりサンプルも生きていますが、その契約に文として読める行がないからです。expect(x).toBe(1) のような断言は、検査している思い込みの隣に置いても読者に何も伝えません。読めない証拠を載せるより、空けておくことを選びました。