{"id":18555692,"url":"https://github.com/mixpanel/domsuite","last_synced_at":"2025-04-09T23:32:24.772Z","repository":{"id":38041713,"uuid":"144063522","full_name":"mixpanel/domsuite","owner":"mixpanel","description":"JavaScript browser testing/automation utilities with async/await","archived":false,"fork":false,"pushed_at":"2023-07-19T17:13:40.000Z","size":2138,"stargazers_count":3,"open_issues_count":5,"forks_count":4,"subscribers_count":46,"default_branch":"master","last_synced_at":"2025-03-24T13:51:15.306Z","etag":null,"topics":["keep","mxpnl-analytics"],"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/mixpanel.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":"2018-08-08T20:20:23.000Z","updated_at":"2025-01-15T20:01:44.000Z","dependencies_parsed_at":"2024-06-19T23:58:27.740Z","dependency_job_id":"4221a3f4-930d-4771-9684-30583f3696c5","html_url":"https://github.com/mixpanel/domsuite","commit_stats":{"total_commits":107,"total_committers":7,"mean_commits":"15.285714285714286","dds":0.6635514018691588,"last_synced_commit":"30f6f920b122dcef72d6455e20aef8cc33076b2b"},"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mixpanel%2Fdomsuite","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mixpanel%2Fdomsuite/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mixpanel%2Fdomsuite/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mixpanel%2Fdomsuite/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mixpanel","download_url":"https://codeload.github.com/mixpanel/domsuite/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248111975,"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":["keep","mxpnl-analytics"],"created_at":"2024-11-06T21:27:36.099Z","updated_at":"2025-04-09T23:32:24.079Z","avatar_url":"https://github.com/mixpanel.png","language":"JavaScript","readme":"# domsuite\n\n![Build Status](https://github.com/mixpanel/domsuite/actions/workflows/tests.yml/badge.svg)\n\n*Work In Progress*\n\nJavaScript browser testing/automation utilities. Uses `async/await` syntax to make\nasynchronous UI interactions straightforward.\n\nMocha example:\n```js\nimport {clickElement, condition, nextAnimationFrame} from 'domsuite';\n\ndescribe(`my sweet UI`, function() {\n  it(`renders the foo when I click the bar`, function() {\n    await clickElement(document.querySelector(`.bar`));\n    await nextAnimationFrame();\n    expect(document.querySelector(`.bar`)).to.be.null;\n    await condition(() =\u003e !!document.querySelector(`.foo`));\n  });\n});\n```\n\n## Installation\n\n`npm install --save-dev domsuite`\n\n## Development / Running tests\n\n#### Install dependencies\n\n`npm install`\n\nBrowser tests run with Selenium through [web-component-tester](https://github.com/Polymer/tools/tree/master/packages/web-component-tester).\n\n#### Run with locally installed browsers\n`npm test`\n\n#### Tunnel to [Sauce Labs](https://saucelabs.com/)\n`SAUCE=1 npm test`\n\nSet credentials with environment variables `SAUCE_USERNAME` and `SAUCE_ACCESS_KEY`. The default browser/OS matrix is defined in `wct.conf.js`.\n\n#### Testing dev loop\n- Terminal 1: Build browser test bundles, rebuild when source files change: `WATCH=true npm run test-build`\n- Terminal 2: Launch browsers, keep alive after tests run: `PERSISTENT=true npm run test-run`\n- Change source files, refresh browser tab to rerun tests\n- Open browser dev tools to stop on breakpoints, debug, etc\n\n## License\n\nMIT\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmixpanel%2Fdomsuite","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmixpanel%2Fdomsuite","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmixpanel%2Fdomsuite/lists"}