{"id":21954687,"url":"https://github.com/sky172839465/test-app","last_synced_at":"2026-03-08T06:31:43.337Z","repository":{"id":44308689,"uuid":"161003379","full_name":"sky172839465/test-app","owner":"sky172839465","description":"Front end testing with CI/CD","archived":false,"fork":false,"pushed_at":"2023-04-30T00:55:20.000Z","size":2231,"stargazers_count":2,"open_issues_count":7,"forks_count":4,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-23T12:49:48.861Z","etag":null,"topics":["compatibility-testing","functional-testing","linting","saucelabs","travis-ci","unit-testing","visual-testing"],"latest_commit_sha":null,"homepage":"https://medium.com/yusong-blog/9735f622ae68","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sky172839465.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":"2018-12-09T04:16:55.000Z","updated_at":"2023-04-18T04:14:32.000Z","dependencies_parsed_at":"2024-11-29T10:02:41.643Z","dependency_job_id":null,"html_url":"https://github.com/sky172839465/test-app","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/sky172839465/test-app","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sky172839465%2Ftest-app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sky172839465%2Ftest-app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sky172839465%2Ftest-app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sky172839465%2Ftest-app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sky172839465","download_url":"https://codeload.github.com/sky172839465/test-app/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sky172839465%2Ftest-app/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30247339,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-08T05:41:50.788Z","status":"ssl_error","status_checked_at":"2026-03-08T05:41:39.075Z","response_time":56,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["compatibility-testing","functional-testing","linting","saucelabs","travis-ci","unit-testing","visual-testing"],"created_at":"2024-11-29T07:24:38.410Z","updated_at":"2026-03-08T06:31:43.317Z","avatar_url":"https://github.com/sky172839465.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# test app\n\n\u003c!--[![FOSSA Status][fossa-status-image]][fossa-status-url]--\u003e\n[![Build Status][travis-image]][travis-url]\n[![Saucelabs Ststus][sauce-labs-status-image]][sauce-labs-status-url]\n[![Coverage Status][codecov-image]][codecov-url]\n[![JavaScript Style Guide][standard-image]][standard-url]  \n\n\u003c!--\n[![Dependency Status][david-dm-image]][david-dm-url]\n[![devDependency Status][david-dm-dev-image]][david-dm-dev-url]\n[![HitCount][hit-count-image]][hit-count-url]\n--\u003e\n\nThis repo has been wrote some test for front end developer easily to learn how to test and test with CI/CD.\n\n👉👉👉 You can get full tutorial about how to start this project from zero on [medium][].\n\n- Lint test\n- Unit test\n- Functional test\n- Visual test\n- Run test on TravisCI\n\n### Quick Start\n\u003cdetails\u003e\n  \u003csummary\u003eCLICK ME\u003c/summary\u003e\n  \n  1. `Fork` this repo \u0026 make sure you have been install [nodejs][].\n  2. `clone` repo from your account\n  ```zsh\n  $ git clone https://github.com/\u003cYOUR_GITHUB_ACCOUNT\u003e/test-app.git\n  ```\n  3. Then run these script to setup website. 👇\n\n  ```zsh\n  # move to test-app dir\n  $ cd test-app\n\n  # install dependency\n  $ npm install\n\n  # launch website\n  $ npm start\n  ```\n  3. Sign in [Travis CI][] with github account\n  4. Open `test-app` from `Repositories`\n    ![Launch Travis CI][launch-image]\n  5. Set environment variables on [Travis CI][]\n    - [CODECOV_TOKEN][]: Use for coverage badge\n      1. Signin [Codecov][]\n        [![SignIn Codecov][signin-codecov-image]][signin-codecov-url]\n      2. Accept Codecov access github account\n        ![Accept Codecov][accept-codecov-image]\n      3. Select test-app repo\n        ![Select Repo][select-repo]\n      4. Get `CODECOV_TOKEN`\n        ![Get Token][get-token]\n    - [EYES_KEY][]: Use for visual test\n      1. Signin [Applitools][]\n        ![Accept Eyes][accept-eyes]\n      2. Get `EYES_KEY`\n        ![Get Eyes Token][get-eyes-token]\n    - GH_REF, [GH_TOKEN][]: Use for deploy github page, `GH_REF` is `github.com/\u003cYOUR_GITHUB_ACCOUNT\u003e/test-app.git`\n      1. Go to [Personal access tokens][] page\n        ![Generator Github Token][generator-github-token]\n      2. Create `GH_TOKEN` can access repo\n        ![Create Github Token][create-github-token]\n      3. Get `GH_TOKEN`\n        ![Get Github Token][get-github-token]\n    - [SAUCE_ACCESS_KEY][], [SAUCE_USERNAME][]: Use for functional test on Saucelabs\n      1. Signin [Sauce Labs][]\n        ![Accept Sauce Labs][accept-sauce-labs]\n      2. Go to [User Settings][] page\n        ![Get Sauce Labs][get-sauce-labs-token]\n      3. Get `SAUCE_ACCESS_KEY` \u0026 `SAUCE_USERNAME`\n    - All environment variables\n      ![Env Variables][env-var-image]\n  6. `Push` a commit to master branch, it will trigger Travis CI to build you CI!\n    ![Build Start][build-start-image]\n    ![Build Passed][build-passed-image]\n\u003c/details\u003e\n\n\n### Table of Contents\n- [Lint test]\n- [Unit test]\n- [Functional test]\n- [Compatibility]\n\n### Lint test\n\u003cdetails\u003e\n  \u003csummary\u003eCLICK ME\u003c/summary\u003e\n  \n  ```zsh\n  $ npm run lint\n  ```\n\u003c/details\u003e\n\n### Unit test\n\u003cdetails\u003e\n  \u003csummary\u003eCLICK ME\u003c/summary\u003e\n  \n  Test all unit test\n  ```zsh\n  $ npm run test\n  ```\n  \n  Test single unit test\n  ```zsh\n  $ npm run test::single \u003cpath/to/test/file\u003e\n  ```\n\u003c/details\u003e\n\n### Functional test\n\u003cdetails\u003e\n  \u003csummary\u003eCLICK ME\u003c/summary\u003e\n  \n  👉 [[Issue][]]: No Java runtime present 👈  Please follow the link install Java.\n\n  Test functional test local\n\n  👉 Before start the script, make sure website has been launch on https://localhost:3000 or run `npm start` first\n\n  👉 First time run this script, please run `npm run install:selenium` install selenium dependency first.\n  ```zsh\n  $ npm run functional::local\n  ```\n\n  Test functional test on saucelabs with localhost\n\n  👉 Before start the script, make sure you have been download [sauce connect], and extract sc file to `bin/sc`\n  ```zsh\n  $ npm run start::sauce_connect\n  # wait for visible `Sauce Connect is up, you may start your tests.`\n  $ npm run functional::online:localhost\n  ```\n\n  Test all functional test on saucelabs\n  ```zsh\n  $ npm run functional::online\n  ```\n\n  Test all functional test on saucelabs with multiple platform\n  ```zsh\n  $ npm run functional::online:multiple\n  ```\n\u003c/details\u003e\n\n### Compatibility\n[![Saucelab Compatibility][compatibility-image]][compatibility-url]\n\n### Big Thanks\n\nCross-browser Testing Platform and Open Source \u003c3 Provided by [Sauce Labs][sauce-homepage]\n\n![Sauce Logo][saucec-logo]\n\n\u003c!-- badge --\u003e\n[fossa-status-image]: https://app.fossa.io/api/projects/git%2Bgithub.com%2Fsky172839465%2Ftest-app.svg?type=shield\n[fossa-status-url]: https://app.fossa.io/projects/git%2Bgithub.com%2Fsky172839465%2Ftest-app?ref=badge_shield\n[travis-image]: https://img.shields.io/travis/sky172839465/test-app.svg\n[travis-url]: https://app.travis-ci.com/sky172839465/test-app.svg?branch=master\n[sauce-labs-status-image]: https://saucelabs.com/buildstatus/test-app\n[sauce-labs-status-url]: https://saucelabs.com/u/test-app\n[codecov-image]: https://img.shields.io/codecov/c/github/sky172839465/test-app.svg\n[codecov-url]: https://codecov.io/gh/sky172839465/test-app\n[standard-image]: https://img.shields.io/badge/code_style-standard-brightgreen.svg\n[standard-url]: https://standardjs.com\n[david-dm-image]: https://david-dm.org/sky172839465/test-app.svg\n[david-dm-url]: https://david-dm.org/sky172839465/test-app\n[david-dm-dev-image]: https://david-dm.org/sky172839465/test-app/dev-status.svg\n[david-dm-dev-url]: https://david-dm.org/sky172839465/test-app#info=devDependencies\n[hit-count-image]: http://hits.dwyl.io/sky172839465/test-app.svg\n[hit-count-url]: http://hits.dwyl.io/sky172839465/test-app\n[compatibility-image]: https://saucelabs.com/browser-matrix/test-app.svg\n[compatibility-url]: https://saucelabs.com/u/test-app\n\n\u003c!-- post --\u003e\n[medium]: https://medium.com/yusong-blog/9735f622ae68\n\n\u003c!-- install --\u003e\n[nodejs]: https://nodejs.org\n[Travis CI]: https://travis-ci.org/\n[launch-image]: https://user-images.githubusercontent.com/9082423/52385822-50d80d00-2abe-11e9-97ce-acf44ac642f3.png\n[env-var-image]: https://user-images.githubusercontent.com/9082423/52385867-8250d880-2abe-11e9-9a5f-613d8ac5cc89.png\n[CODECOV_TOKEN]: https://codecov.io\n[signin-codecov-image]: https://user-images.githubusercontent.com/9082423/52392435-c357e580-2adc-11e9-86ff-d2fdb69836d8.png\n[signin-codecov-url]: https://codecov.io/gh\n[Codecov]: https://codecov.io/gh\n[accept-codecov-image]: https://user-images.githubusercontent.com/9082423/52392611-9eb03d80-2add-11e9-88df-0574fdcf8999.png\n[select-repo]: https://user-images.githubusercontent.com/9082423/52393227-28f9a100-2ae0-11e9-8495-b5b9ecf2adaa.png\n[get-token]: https://user-images.githubusercontent.com/9082423/52392961-16cb3300-2adf-11e9-941c-dde1b5ae800d.png\n[EYES_KEY]: https://applitools.com\n[Applitools]: https://applitools.com/users/register\n[accept-eyes]: https://user-images.githubusercontent.com/9082423/52393467-1cc21380-2ae1-11e9-9dfc-ec48021e25c2.png\n[get-eyes-token]: https://user-images.githubusercontent.com/9082423/52393507-4bd88500-2ae1-11e9-8a9e-bd9efb84e81f.png\n[GH_TOKEN]: https://github.com/settings/tokens\n[Personal access tokens]: https://github.com/settings/tokens\n[generator-github-token]: https://user-images.githubusercontent.com/9082423/52393622-f18bf400-2ae1-11e9-9600-f157b132b7e0.png\n[create-github-token]: https://user-images.githubusercontent.com/9082423/52393632-049ec400-2ae2-11e9-934f-72376092a722.png\n[get-github-token]: https://user-images.githubusercontent.com/9082423/52393660-2009cf00-2ae2-11e9-8fb6-54b7cc5280dc.png\n[SAUCE_ACCESS_KEY]: https://saucelabs.com/oauth/login/github\n[SAUCE_USERNAME]: https://saucelabs.com/oauth/login/github\n[Sauce Labs]: https://saucelabs.com/oauth/login/github\n[accept-sauce-labs]: https://user-images.githubusercontent.com/9082423/52394056-f0f45d00-2ae3-11e9-9d46-9a9ae115b62c.png\n[User Settings]: https://app.saucelabs.com/user-settings\n[get-sauce-labs-token]: https://user-images.githubusercontent.com/9082423/52394055-f05bc680-2ae3-11e9-8f4f-985b2ca8e1d4.png\n[build-start-image]: https://user-images.githubusercontent.com/9082423/52386407-f3918b00-2ac0-11e9-821a-4f0123cd0d85.png\n[build-passed-image]: https://user-images.githubusercontent.com/9082423/52386440-22a7fc80-2ac1-11e9-97dd-b81cb975085a.png\n\n\u003c!-- table of contents --\u003e\n[Lint test]: https://github.com/sky172839465/test-app#lint-test\n[Unit Test]: https://github.com/sky172839465/test-app#unit-test\n[Functional Test]: https://github.com/sky172839465/test-app#functional-test\n[Environment Variables]: https://github.com/sky172839465/test-app#environment-variables\n[Compatibility]: https://github.com/sky172839465/test-app#compatibility\n\n\u003c!-- Functional Test --\u003e\n[Issue]: https://github.com/vvo/selenium-standalone/issues/140#issuecomment-151254279\n[sauce connect]: https://wiki.saucelabs.com/display/DOCS/Basic+Sauce+Connect+Proxy+Setup#BasicSauceConnectProxySetup-SettingUpSauceConnect\n\n\u003c!-- big thanks --\u003e\n[sauce-homepage]: https://saucelabs.com\n[saucec-logo]: https://user-images.githubusercontent.com/9082423/53340347-c6a7f980-3943-11e9-8424-77ce890942fd.png\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsky172839465%2Ftest-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsky172839465%2Ftest-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsky172839465%2Ftest-app/lists"}