{"id":23446400,"url":"https://github.com/sandrina-p/workshop-js-testing","last_synced_at":"2025-04-10T00:49:54.526Z","repository":{"id":56512045,"uuid":"304828189","full_name":"sandrina-p/workshop-js-testing","owner":"sandrina-p","description":"Workshop: Learn testing principles and how to apply them to React applications using Jest and Testing Library","archived":false,"fork":false,"pushed_at":"2020-11-04T15:32:10.000Z","size":668,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-10T00:49:50.725Z","etag":null,"topics":["javascript-testing","jest","testing-library","testing-library-react","workshop"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sandrina-p.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-10-17T08:03:53.000Z","updated_at":"2024-11-16T19:55:14.000Z","dependencies_parsed_at":"2022-08-15T20:10:22.487Z","dependency_job_id":null,"html_url":"https://github.com/sandrina-p/workshop-js-testing","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sandrina-p%2Fworkshop-js-testing","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sandrina-p%2Fworkshop-js-testing/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sandrina-p%2Fworkshop-js-testing/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sandrina-p%2Fworkshop-js-testing/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sandrina-p","download_url":"https://codeload.github.com/sandrina-p/workshop-js-testing/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248137996,"owners_count":21053775,"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-testing","jest","testing-library","testing-library-react","workshop"],"created_at":"2024-12-23T20:34:49.011Z","updated_at":"2025-04-10T00:49:54.507Z","avatar_url":"https://github.com/sandrina-p.png","language":"JavaScript","readme":"# Javascript Testing Fundamentals\n\nLearn testing principles and how to apply them to React applications using **Jest** and **Testing Library**.\n\n---\n\nHi there! I'm [Sandrina Pereira](https://www.sandrina-p.net/) and I love refactoring code with the confidence of not breaking an app.\n\nThese are the material resources for my **JS Testing Workshop**. \u003c!-- TODO LINK --\u003e\n\n## Pre-Workshop requirements\n\nTo get the most out of the workshop, please do the following things in advance:\n\n- **Install [Zoom](https://zoom.us)** to join the video call.\n  - Turn on your video if possible, so we don't feel alone.\n  - Keep your microphone muted to avoid background noises.\n- **Install a modern browser**. Chrome or Firefox are recommended.\n- **Setup the project** prior to the workshop to avoid unexpected installation issues.\n\nThe better prepared you are for the workshop, the more you will learn from it!\n\n## Setup the project\n\n### Installing\n\n[Git](https://git-scm.com/) and [NodeJS](https://nodejs.org/en/) are required before proceding.\n\n```bash\n# Clone the repository\ngit clone https://github.com/sandrina-p/workshop-js-testing.git\n\n# Go to the workshop folder\ncd workshop-js-testing\n\n# Install the dependencies\nnpm install\n```\n\n### Quick Check-up\n\nTo ensure all is fine, please verify the three following things:\n\n1. **App running:** Run `npm start`. The workshop app should start at http://localhost:1234\n2. **Testing tool:** Run `npm run checkup` and verify the [output matches this example](src/_checkup/checkup_output.png?raw=true).\n3. **Linters integrations:** Integrate [ESLint](https://eslint.org/docs/user-guide/integrations) and [Prettier](https://prettier.io/docs/en/editors.html) in your editor. Then, restart your editor, open `src/_checkup/index.test.js` and follow the notes given with the light bulb emoji 💡.\n\n- Did everything work? _Ah-wesome!_ That's all, see you soon! 🤓\n- Having troubles? [Open an issue](https://github.com/sandrina-p/workshop-js-testing/issues/new) or reach me at a.sandrina.p@gmail.com.\n\n### Workshop Dynamic\n\nThe workshop consists of a set of challenges.  \nEach one introduces a new topic, followed with a code exercise for you to apply the concepts learned.  \nAfter each challenge, we'll go through the solution together and clarify questions.\n\n```bash\nsrc/\n  challenges/  # Challenges\n     *.md         # Exercise instructions\n     *.test.js    # Where you'll be writing tests\n  playgrounds/ # Code to be tested\n  solutions/   # The final test solutions\n```\n\n#### Notes:\n\n- **Setup is done:** All libraries/tools needed are already installed, ready to be used by you.\n- **Check solutions as a last resource.** If you take a peek at the solution before even trying, you'll be sabotaging your own learning. It's okay to struggle while you try to solve the exercise, it's part of the learning process. :)\n- **Time expectations:** I don't expect you to complete the entire exercises on time. The goal is to introduce you to new things, to _make you think about them and ask me questions_ as we go through the content.\n- **Learning strategy:** You won't write all the tests for each module. Instead, I'll point you to _the tests with the biggest learning value_.\n\n```js\n// Test to be done:\nit('must work', () =\u003e {\n  // This gives you an idea of how many assertions you should do\n  expect.assertions(3)\n\n  // 💡 The light bulb emoji will guide you\n  // 🍀 The lucky clover emoji will reveal tips \u0026 tricks\n})\n\n// Extra time? 😴 Go ahead and complete the missing tests\nit.skip('might work', () =\u003e {\n  // ...\n})\n```\n\n\u003c!--\n## Workshop Feedback\n\nPlease take a couple of minutes to [give me your feedback](TODO-LINK), as it will help me improving the next editions of this workshop 🤗\n--\u003e\n\n## License\n\nThis is only available for private, non-commercial use under the [GPL version 3](http://www.gnu.org/licenses/gpl-3.0-standalone.html).\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsandrina-p%2Fworkshop-js-testing","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsandrina-p%2Fworkshop-js-testing","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsandrina-p%2Fworkshop-js-testing/lists"}