{"adoption": {"forks": 240, "observed_at": "2026-08-28T04:04:40.809419+00:00", "stars": 1422}, "canonical_url": "https://ross.abutalabs.com/products/teaspoon", "card": {"archived": false, "artifact_type": "library", "description": "Teaspoon: Javascript test runner for Rails. Use Selenium, BrowserStack, or PhantomJS.", "domain": ["testing", "web-development"], "enriched": true, "function": ["testing", "e2e-testing"], "health_score": 22, "homepage": null, "language": "JavaScript", "license": null, "license_family": "other", "maturity": "maintenance", "member_repos": ["jejacks0n/teaspoon"], "name": "jejacks0n/teaspoon", "platform": ["ruby", "cli"], "pushed_at": "2024-08-23T12:49:14+00:00", "repo": "jejacks0n/teaspoon", "stars": 1422, "tags": ["rails", "javascript-testing", "jasmine", "mocha", "qunit", "selenium", "browserstack", "phantomjs", "test-runner", "asset-pipeline", "code-coverage", "javascript", "web-server"], "topics": ["teaspoon", "jasmine", "qunit", "browserstack", "mocha", "coverage", "javascript-tests", "rails"], "urls": [], "use_cases": ["run javascript tests in a rails app", "test javascript headlessly with selenium or phantomjs", "run jasmine, mocha, or qunit specs through the rails asset pipeline", "run javascript tests on browserstack", "generate code coverage for javascript tests in rails", "run javascript tests in continuous integration"], "what_it_is": "Teaspoon is a JavaScript test runner built as a Ruby gem for Rails applications. It runs tests in the browser or headlessly via PhantomJS or Selenium WebDriver, with support for Jasmine, Mocha, and QUnit frameworks and BrowserStack grid providers.", "when_to_avoid": ["your project is not a Rails app", "you want a modern actively developed test runner (e.g. Jest, Vitest)", "you need a framework-agnostic Node.js testing setup"], "when_to_choose": ["you have a Rails application and need to test its JavaScript", "you want Jasmine, Mocha, or QUnit integrated with the Rails asset pipeline", "you need headless or cross-browser JavaScript testing including BrowserStack"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/teaspoon", "repo": "jejacks0n/teaspoon", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:40.809419+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:37:41.922956+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ea8f5790919d519cb656995dd80aa69419ddefed26f6b4f66e79426106301897", "fetched_at": "2026-08-28T04:04:40.809419+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jejacks0n/teaspoon"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:40.809419+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:37:41.922956+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ea8f5790919d519cb656995dd80aa69419ddefed26f6b4f66e79426106301897", "fetched_at": "2026-08-28T04:04:40.809419+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jejacks0n/teaspoon"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:37:41.922956+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ea8f5790919d519cb656995dd80aa69419ddefed26f6b4f66e79426106301897", "fetched_at": "2026-08-28T04:04:40.809419+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jejacks0n/teaspoon"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:04:40.809419+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:40.809419+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:40.809419+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:37:41.922956+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ea8f5790919d519cb656995dd80aa69419ddefed26f6b4f66e79426106301897", "fetched_at": "2026-08-28T04:04:40.809419+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jejacks0n/teaspoon"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:40.809419+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:40.809419+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:37:41.922956+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ea8f5790919d519cb656995dd80aa69419ddefed26f6b4f66e79426106301897", "fetched_at": "2026-08-28T04:04:40.809419+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jejacks0n/teaspoon"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:40.809419+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:40.809419+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:40.809419+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:37:41.922956+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ea8f5790919d519cb656995dd80aa69419ddefed26f6b4f66e79426106301897", "fetched_at": "2026-08-28T04:04:40.809419+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jejacks0n/teaspoon"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:40.809419+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:40.809419+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:37:41.922956+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ea8f5790919d519cb656995dd80aa69419ddefed26f6b4f66e79426106301897", "fetched_at": "2026-08-28T04:04:40.809419+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jejacks0n/teaspoon"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:37:41.922956+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ea8f5790919d519cb656995dd80aa69419ddefed26f6b4f66e79426106301897", "fetched_at": "2026-08-28T04:04:40.809419+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jejacks0n/teaspoon"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:37:41.922956+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ea8f5790919d519cb656995dd80aa69419ddefed26f6b4f66e79426106301897", "fetched_at": "2026-08-28T04:04:40.809419+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jejacks0n/teaspoon"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:37:41.922956+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ea8f5790919d519cb656995dd80aa69419ddefed26f6b4f66e79426106301897", "fetched_at": "2026-08-28T04:04:40.809419+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jejacks0n/teaspoon"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 5017, "days_push": 740, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 23, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}