{"id":23357874,"url":"https://github.com/ekaterinamavliutova/chatbot_widget","last_synced_at":"2025-08-19T22:03:59.038Z","repository":{"id":254810464,"uuid":"847609772","full_name":"EkaterinaMavliutova/Chatbot_widget","owner":"EkaterinaMavliutova","description":"Educational project on Hexlet","archived":false,"fork":false,"pushed_at":"2024-11-04T06:53:56.000Z","size":445,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-07T20:18:04.476Z","etag":null,"topics":["component-testing","javascript","testing-library-react","unit-tests","vitest"],"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/EkaterinaMavliutova.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-08-26T07:41:13.000Z","updated_at":"2024-12-12T16:48:22.000Z","dependencies_parsed_at":null,"dependency_job_id":"0094cb9f-8513-4d86-9cb0-a485fc3a3c95","html_url":"https://github.com/EkaterinaMavliutova/Chatbot_widget","commit_stats":null,"previous_names":["ekaterinamavliutova/qa-auto-engineer-javascript-project-89","ekaterinamavliutova/chatbot_widget"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EkaterinaMavliutova%2FChatbot_widget","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EkaterinaMavliutova%2FChatbot_widget/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EkaterinaMavliutova%2FChatbot_widget/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EkaterinaMavliutova%2FChatbot_widget/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/EkaterinaMavliutova","download_url":"https://codeload.github.com/EkaterinaMavliutova/Chatbot_widget/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247721910,"owners_count":20985084,"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":["component-testing","javascript","testing-library-react","unit-tests","vitest"],"created_at":"2024-12-21T10:33:36.139Z","updated_at":"2025-04-07T20:18:08.044Z","avatar_url":"https://github.com/EkaterinaMavliutova.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Chatbot Widget testing project at Hexlet:\n[![Actions Status](https://github.com/EkaterinaMavliutova/qa-auto-engineer-javascript-project-89/actions/workflows/hexlet-check.yml/badge.svg)](https://github.com/EkaterinaMavliutova/qa-auto-engineer-javascript-project-89/actions) [![CI](https://github.com/EkaterinaMavliutova/qa-auto-engineer-javascript-project-89/actions/workflows/ci.yml/badge.svg?branch=main\u0026event=push)](https://github.com/EkaterinaMavliutova/qa-auto-engineer-javascript-project-89/actions/workflows/ci.yml) [![Test Coverage](https://api.codeclimate.com/v1/badges/6021cbabef1ba9e8af5c/test_coverage)](https://codeclimate.com/github/EkaterinaMavliutova/qa-auto-engineer-javascript-project-89/test_coverage)\n\n**Chatbot Widget** is an npm package that exports a function with chat configuration passed to it as a parameter and returns a React component that represents the UI part. Configuration determines the user's interaction with the Chatbot Widget by describing various chatbot states as the chat messages and possible transitions between them as buttons for the user to click.\n\nTesting was conducted using React Testing Library as a testing library and Jest as a test runner. Also, jest-dom library was used to get access to the additional Jest matchers to test the state of the DOM.\n\nTesting covers the following cases:\n* How the widget renders in various states.\n* Transitions between states.\n* How the widget integrates into another app.\n* How the widget corresponds with the passed chat configuration.\n* How it handles configuration errors.\n\n## Installation\n\u003enote: the current version of Chatbot Widget was tested using Node.js v20.11.1\n* Clone this repository.\n* Install required dependencies:\n```\nnpm ci\n```\n\n## How to run tests\n* Run Chatbot Widget:\n```\nnpm run dev\n```\n* Run tests:\n```\nnpm test\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fekaterinamavliutova%2Fchatbot_widget","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fekaterinamavliutova%2Fchatbot_widget","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fekaterinamavliutova%2Fchatbot_widget/lists"}