{"id":18752986,"url":"https://github.com/spotify/should-up","last_synced_at":"2025-04-09T21:14:52.351Z","repository":{"id":20371434,"uuid":"89359539","full_name":"spotify/should-up","owner":"spotify","description":"Remove most of the \"should\" noise from your tests","archived":false,"fork":false,"pushed_at":"2024-04-02T09:06:15.000Z","size":20,"stargazers_count":163,"open_issues_count":5,"forks_count":23,"subscribers_count":11,"default_branch":"master","last_synced_at":"2025-04-09T21:14:45.717Z","etag":null,"topics":["javascript","should","testing"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/spotify.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-04-25T12:45:16.000Z","updated_at":"2025-02-20T15:53:54.000Z","dependencies_parsed_at":"2024-10-24T19:35:45.311Z","dependency_job_id":null,"html_url":"https://github.com/spotify/should-up","commit_stats":{"total_commits":5,"total_committers":3,"mean_commits":"1.6666666666666667","dds":0.4,"last_synced_commit":"835433cb0686ab93d14ff8f3dbe06a05fdff7a37"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spotify%2Fshould-up","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spotify%2Fshould-up/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spotify%2Fshould-up/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spotify%2Fshould-up/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/spotify","download_url":"https://codeload.github.com/spotify/should-up/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248111971,"owners_count":21049578,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["javascript","should","testing"],"created_at":"2024-11-07T17:23:30.526Z","updated_at":"2025-04-09T21:14:52.328Z","avatar_url":"https://github.com/spotify.png","language":"JavaScript","readme":"Should Up\n=========\n\nRemove all those \"should\" prefixes cluttering up your JS unit test descriptions!\n\nWhen you run `should-up`, it'll go through all the files in the directory you specify, cleaning up as many test descriptions as it can. Afterwards, the changes should look something like this.\n\n\u003ctable\u003e\n\u003cthead\u003e\u003cth\u003eBefore\u003c/th\u003e\u003cth\u003eAfter\u003c/th\u003e\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\n\n\u003cpre\u003e\u003ccode\u003edescribe('TodoApp', () =\u003e {\n  it('should store reminders in local storage');\n  it('should set reminders as done when clicked');\n  it('should sync with the cloud');\n});\n\u003c/code\u003e\u003c/pre\u003e\n\n\u003c/td\u003e\n\n\u003ctd\u003e\n\u003cpre\u003e\u003ccode\u003edescribe('TodoApp', () =\u003e {\n  it('stores reminders in local storage');\n  it('sets reminders as done when clicked');\n  it('syncs with the cloud');\n});\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/td\u003e\n\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\nInstallation\n------------\n\n```bash\nnpm install -g should-up\n```\n\nUsage\n-----\n\n```\nshould-up /path/to/your/tests\n```\n\nRationale\n---------\n\nAs you can see from the following highly scientific table of data, there's a pretty strong negative correlation between the readability of your test descriptions and the amount of meaningless filler in them.\n\n\u003ctable\u003e\n\u003cthead\u003e\n\u003cth\u003eReadability\u003c/th\u003e\n\u003cth\u003eAmount of meaningless filler\u003c/th\u003e\n\u003c/thead\u003e\n\n\u003ctbody\u003e\n\n\u003ctr\u003e\n\u003ctd\u003e\u003cstrong\u003eTotal Disaster\u003c/strong\u003e\u003cbr /\u003e⭐️\u003c/td\u003e\n\u003ctd\u003e\n\u003cpre\u003e\u003ccode\u003eWidget\n  ✓ should always correctly contain a button whenever appropriate\n  ✓ should always correctly dispatch an event on click whenever appropriate\n  ✓ should always correctly show the name of the user whenever appropriate\n  ✓ should always correctly show the type of widget  whenever appropriate\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\n\u003ctr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003cstrong\u003eStill Very Bad\u003c/strong\u003e\u003cbr /\u003e⭐️⭐️\u003c/td\u003e\n\u003ctd\u003e\n\u003cpre\u003e\u003ccode\u003eWidget\n  ✓ should always correctly contain a button\n  ✓ should always correctly dispatch an event on click\n  ✓ should always correctly show the name of the user\n  ✓ should always correctly show the type of widget\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\n\u003ctr\u003e\n\u003ctd\u003e\u003cstrong\u003eYou Are Here →\u003c/strong\u003e\u003cbr /\u003e⭐️⭐️⭐️⭐️\u003c/td\u003e\n\u003ctd\u003e\n\u003cpre\u003e\u003ccode\u003e\nWidget\n  ✓ should contain a button\n  ✓ should dispatch an event on click\n  ✓ should show the name of the user\n  ✓ should show the type of widget\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\n\u003ctr\u003e\n\u003ctd\u003e\u003cstrong\u003eAll Killer No Filler\u003c/strong\u003e\u003cbr /\u003e⭐️⭐️⭐️⭐️⭐️\u003c/td\u003e\n\u003ctd\u003e\n\u003cpre\u003e\u003ccode\u003eWidget\n  ✓ contains a button\n  ✓ dispatches an event on click\n  ✓ shows the name of the user\n  ✓ shows the type of widget\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\n\u003c/tbody\u003e\n\u003c/table\u003e\n\nAnyway, when we start everything with the word \"should\", it sounds like we're not really 100% sure about what our code does.\nLike maybe we're even a little bit pessimistic that it works at all, but we're crossing our fingers and hoping for the best anyway.\n\n\u003e Well... it _should_ dispatch an event on click, but I dunno.\n\u003e Just... look, you can run it if you want, but don't come to me if it breaks is all I'm saying.\n\nWhen you say something like `it('dispatches an event on click')` instead, it's literally a more enjoyable thing to write.\nIt makes you feel like you're more certain about what your code's doing, and also more proud of your concise new unit test descriptions.\n\nContributing\n------------\n\nThis project adheres to the [Open Code of Conduct][code-of-conduct].\nBy participating, you are expected to honor this code.\n\nLicense\n-------\n\n[Apache 2.0](LICENSE)\n\n[code-of-conduct]: https://github.com/spotify/code-of-conduct/blob/master/code-of-conduct.md\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspotify%2Fshould-up","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fspotify%2Fshould-up","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspotify%2Fshould-up/lists"}