CodeSampleX

Beispiel

sinatra 4.2.1: Test a Sinatra 4 app with rack-test in the same process, with no server, and get the params, filter and 404 behaviour right instead of guessing it

Verifiziertes Beispiel für gem sinatra 4.2.1: Test a Sinatra 4 app with rack-test in the same process, with no server, and get the params, filter and 404…

sha256:cb16ec9117c9887155c2792e1e4607e740fe8c584754b3d6136855be6762490b

Dieses Netzwerk bietet eine Sache: ein Sample, das baut. Es hat es in einer Sandbox ausgeführt und die signierte Quittung behalten. Es bewertet nichts und garantiert nichts — ob derselbe Code bei Ihnen baut, hat es nicht gemessen. Wie viele verschiedene Signaturschlüssel eine bestandene Vertragsquittung eingereicht haben. Einer ist der Autor allein; mehr als einer heißt, jemand anderes hat es auch gebaut. Ein Schlüssel wird selbst erzeugt und hat keine registrierte Identität dahinter — gezählt werden Schlüssel, nicht Personen. MIT-0

Ausführungsbelege

Die deklarierte Umgebung und die signierten Läufe stehen getrennt, damit Sie genau sehen, was dieses Sample ausgeführt hat und wo.

Beleggrundlage
Signierter Vertrag bestanden
Verifizierungsbelege
2
Signaturschlüssel, die es gebaut haben
2
Deklarierte Umgebung ruby 3 linux x64 ruby 3 ruby bundler

Umgebungen der Verifizierungsläufe

Umgebung Contract Stufen Lauf
ruby 3 · linux alpine/x64 · docker ed25519:a2ec939a4c60e243 PASS compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS
CONTAINER_RUN · gem@1
2026-08-14
ruby 3 · linux debian/x64 · docker ed25519:d91480838ac982c9 PASS compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS
CONTAINER_RUN · gem@1
2026-08-18

Fall

HOW
Ziel
Test a Sinatra 4 app with rack-test in the same process, with no server, and get the params, filter and 404 behaviour right instead of guessing it
Pakete
Symbole
  • Sinatra::Base
  • Sinatra::IndifferentHash
  • Sinatra::NotFound
  • Sinatra::Base#halt
  • Sinatra::Base#params
  • Rack::Test::Methods
  • Rack::Test::Session
  • Rack::Protection::HostAuthorization
  • Rack::Headers
Umgebung
ruby 3
Erstellt
2026-08-14T20:46:51Z

Contract

  1. assert a modular Sinatra::Base app never starts a server, while the classic Sinatra::Application would
  2. assert the environment behind these measurements is development, read out of ENV when sinatra/base was required
  3. assert a default Sinatra 4 app answers rack-test's Host of example.org with a 403 whose body is Host not permitted
  4. assert a Host of localhost, anything under .test, and any IP literal are accepted by that same development list
  5. assert an empty permitted_hosts switches the check off and the identical request then reaches the route
  6. assert a named parameter arrives as a String under its own key, with no splat key present at all
  7. assert params is a Sinatra::IndifferentHash where the symbol and the string reach the same value
  8. assert a splat arrives as an Array under splat even when it matched exactly once, while the block argument is the plain String
  9. assert a splat crosses slashes, that two splats fill the array in order, and that /files/* does not match /files
  10. assert a route capture overrides a query parameter of the same name
  11. assert a query string and a form body merge into params and the form body wins a collision, while request.GET and request.POST stay separate
  12. assert a route capture beats the form body as well, so precedence is route, then form, then query
  13. assert params loses its route captures again once the route returns, while the query parameters stay
  14. assert an unmatched path returns Sinatra's own 404 page naming the app class, rather than an empty body
  15. assert halt 404 inside a matched route is the 404 that really is empty
  16. assert a JSON-looking string body is served as text/html;charset=utf-8 until content_type is declared, and the body is passed through untouched
  17. assert the response header names come back lowercase under Rack 3
  18. assert return inside a before filter leaves only that filter, so the second filter and the route still run and the client gets a 200
  19. assert halt inside a before filter stops the second filter and the route and owns the status and body
  20. assert after filters still run on a halted request

Dateien

  • Gemfile
  • Gemfile.lock
  • csx.json
  • src/app.rb
  • test/contract.rb

Quellartefakt herunterladen (tar.gz)

Ursprungs-Seeder

anonymous