 aacb45156b
			
		
	
	aacb45156b
	
	
	
		
			
			- Install Jest for unit testing with React Testing Library - Install Playwright for end-to-end testing - Configure Jest with proper TypeScript support and module mapping - Create test setup files and utilities for both unit and e2e tests Components: * Jest configuration with coverage thresholds * Playwright configuration with browser automation * Unit tests for LoginForm, AuthContext, and useSocketIO hook * E2E tests for authentication, dashboard, and agents workflows * GitHub Actions workflow for automated testing * Mock data and API utilities for consistent testing * Test documentation with best practices Testing features: - Unit tests with 70% coverage threshold - E2E tests with API mocking and user journey testing - CI/CD integration for automated test runs - Cross-browser testing support with Playwright - Authentication system testing end-to-end 🚀 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
		
			
				
	
	
		
			136 lines
		
	
	
		
			8.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			136 lines
		
	
	
		
			8.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| # ci-info
 | |
| 
 | |
| Get details about the current Continuous Integration environment.
 | |
| 
 | |
| Please [open an
 | |
| issue](https://github.com/watson/ci-info/issues/new?template=ci-server-not-detected.md)
 | |
| if your CI server isn't properly detected :)
 | |
| 
 | |
| [](https://www.npmjs.com/package/ci-info)
 | |
| [](https://github.com/watson/ci-info/actions)
 | |
| [](https://github.com/feross/standard)
 | |
| 
 | |
| ## Installation
 | |
| 
 | |
| ```bash
 | |
| npm install ci-info --save
 | |
| ```
 | |
| 
 | |
| ## Usage
 | |
| 
 | |
| ```js
 | |
| var ci = require('ci-info')
 | |
| 
 | |
| if (ci.isCI) {
 | |
|   console.log('The name of the CI server is:', ci.name)
 | |
| } else {
 | |
|   console.log('This program is not running on a CI server')
 | |
| }
 | |
| ```
 | |
| 
 | |
| ## Supported CI tools
 | |
| 
 | |
| Officially supported CI servers:
 | |
| 
 | |
| | Name                                                                            | Constant                | isPR |
 | |
| | ------------------------------------------------------------------------------- | ----------------------- | ---- |
 | |
| | [Agola CI](https://agola.io/)                                                   | `ci.AGOLA`              | ✅   |
 | |
| | [Appcircle](https://appcircle.io/)                                              | `ci.APPCIRCLE`          | ✅   |
 | |
| | [AppVeyor](http://www.appveyor.com)                                             | `ci.APPVEYOR`           | ✅   |
 | |
| | [AWS CodeBuild](https://aws.amazon.com/codebuild/)                              | `ci.CODEBUILD`          | ✅   |
 | |
| | [Azure Pipelines](https://azure.microsoft.com/en-us/services/devops/pipelines/) | `ci.AZURE_PIPELINES`    | ✅   |
 | |
| | [Bamboo](https://www.atlassian.com/software/bamboo) by Atlassian                | `ci.BAMBOO`             | 🚫   |
 | |
| | [Bitbucket Pipelines](https://bitbucket.org/product/features/pipelines)         | `ci.BITBUCKET`          | ✅   |
 | |
| | [Bitrise](https://www.bitrise.io/)                                              | `ci.BITRISE`            | ✅   |
 | |
| | [Buddy](https://buddy.works/)                                                   | `ci.BUDDY`              | ✅   |
 | |
| | [Buildkite](https://buildkite.com)                                              | `ci.BUILDKITE`          | ✅   |
 | |
| | [CircleCI](http://circleci.com)                                                 | `ci.CIRCLE`             | ✅   |
 | |
| | [Cirrus CI](https://cirrus-ci.org)                                              | `ci.CIRRUS`             | ✅   |
 | |
| | [Cloudflare Pages](https://pages.cloudflare.com/)                               | `ci.CLOUDFLARE_PAGES`   | 🚫   |
 | |
| | [Cloudflare Workers](https://pages.cloudflare.com/)                             | `ci.CLOUDFLARE_WORKERS` | 🚫   |
 | |
| | [Codefresh](https://codefresh.io/)                                              | `ci.CODEFRESH`          | ✅   |
 | |
| | [Codeship](https://codeship.com)                                                | `ci.CODESHIP`           | 🚫   |
 | |
| | [Drone](https://drone.io)                                                       | `ci.DRONE`              | ✅   |
 | |
| | [dsari](https://github.com/rfinnie/dsari)                                       | `ci.DSARI`              | 🚫   |
 | |
| | [Earthly CI](https://earthly.dev/)                                              | `ci.EARTHLY`            | 🚫   |
 | |
| | [Expo Application Services](https://expo.dev/eas)                               | `ci.EAS`                | 🚫   |
 | |
| | [Gerrit CI](https://www.gerritcodereview.com)                                   | `ci.GERRIT`             | 🚫   |
 | |
| | [GitHub Actions](https://github.com/features/actions/)                          | `ci.GITHUB_ACTIONS`     | ✅   |
 | |
| | [GitLab CI](https://about.gitlab.com/gitlab-ci/)                                | `ci.GITLAB`             | ✅   |
 | |
| | [Gitea Actions](https://about.gitea.com/)                                       | `ci.GITEA_ACTIONS`      | 🚫  |
 | |
| | [GoCD](https://www.go.cd/)                                                      | `ci.GOCD`               | 🚫   |
 | |
| | [Google Cloud Build](https://cloud.google.com/build)                            | `ci.GOOGLE_CLOUD_BUILD` | 🚫   |
 | |
| | [Harness CI](https://www.harness.io/products/continuous-integration)            | `ci.HARNESS`            | 🚫   |
 | |
| | [Heroku](https://www.heroku.com)                                                | `ci.HEROKU`             | 🚫   |
 | |
| | [Hudson](http://hudson-ci.org)                                                  | `ci.HUDSON`             | 🚫   |
 | |
| | [Jenkins CI](https://jenkins-ci.org)                                            | `ci.JENKINS`            | ✅   |
 | |
| | [LayerCI](https://layerci.com/)                                                 | `ci.LAYERCI`            | ✅   |
 | |
| | [Magnum CI](https://magnum-ci.com)                                              | `ci.MAGNUM`             | 🚫   |
 | |
| | [Netlify CI](https://www.netlify.com/)                                          | `ci.NETLIFY`            | ✅   |
 | |
| | [Nevercode](http://nevercode.io/)                                               | `ci.NEVERCODE`          | ✅   |
 | |
| | [Prow](https://docs.prow.k8s.io/)                                               | `ci.PROW`               | 🚫   |
 | |
| | [ReleaseHub](https://releasehub.com/)                                           | `ci.RELEASEHUB`         | 🚫   |
 | |
| | [Render](https://render.com/)                                                   | `ci.RENDER`             | ✅   |
 | |
| | [Sail CI](https://sail.ci/)                                                     | `ci.SAIL`               | ✅   |
 | |
| | [Screwdriver](https://screwdriver.cd/)                                          | `ci.SCREWDRIVER`        | ✅   |
 | |
| | [Semaphore](https://semaphoreci.com)                                            | `ci.SEMAPHORE`          | ✅   |
 | |
| | [Sourcehut](https://sourcehut.org/)                                             | `ci.SOURCEHUT`          | 🚫   |
 | |
| | [Strider CD](https://strider-cd.github.io/)                                     | `ci.STRIDER`            | 🚫   |
 | |
| | [TaskCluster](http://docs.taskcluster.net)                                      | `ci.TASKCLUSTER`        | 🚫   |
 | |
| | [TeamCity](https://www.jetbrains.com/teamcity/) by JetBrains                    | `ci.TEAMCITY`           | 🚫   |
 | |
| | [Travis CI](http://travis-ci.org)                                               | `ci.TRAVIS`             | ✅   |
 | |
| | [Vela](https://go-vela.github.io/docs/)                                         | `ci.VELA`               | ✅   |
 | |
| | [Vercel](https://vercel.com/)                                                   | `ci.VERCEL`             | ✅   |
 | |
| | [Visual Studio App Center](https://appcenter.ms/)                               | `ci.APPCENTER`          | 🚫   |
 | |
| | [Woodpecker](https://woodpecker-ci.org/)                                        | `ci.WOODPECKER`         | ✅   |
 | |
| 
 | |
| ## API
 | |
| 
 | |
| ### `ci.name`
 | |
| 
 | |
| Returns a string containing name of the CI server the code is running on.
 | |
| If CI server is not detected, it returns `null`.
 | |
| 
 | |
| Don't depend on the value of this string not to change for a specific
 | |
| vendor. If you find your self writing `ci.name === 'Travis CI'`, you
 | |
| most likely want to use `ci.TRAVIS` instead.
 | |
| 
 | |
| ### `ci.isCI`
 | |
| 
 | |
| Returns a boolean. Will be `true` if the code is running on a CI server,
 | |
| otherwise `false`.
 | |
| 
 | |
| Some CI servers not listed here might still trigger the `ci.isCI`
 | |
| boolean to be set to `true` if they use certain vendor neutral
 | |
| environment variables. In those cases `ci.name` will be `null` and no
 | |
| vendor specific boolean will be set to `true`.
 | |
| 
 | |
| ### `ci.isPR`
 | |
| 
 | |
| Returns a boolean if PR detection is supported for the current CI server. Will
 | |
| be `true` if a PR is being tested, otherwise `false`. If PR detection is
 | |
| not supported for the current CI server, the value will be `null`.
 | |
| 
 | |
| ### `ci.<VENDOR-CONSTANT>`
 | |
| 
 | |
| A vendor specific boolean constant is exposed for each support CI
 | |
| vendor. A constant will be `true` if the code is determined to run on
 | |
| the given CI server, otherwise `false`.
 | |
| 
 | |
| Examples of vendor constants are `ci.TRAVIS` or `ci.APPVEYOR`. For a
 | |
| complete list, see the support table above.
 | |
| 
 | |
| ## Ports
 | |
| 
 | |
| ci-info has been ported to the following languages
 | |
| 
 | |
| | Language | Repository |
 | |
| |----------|------------|
 | |
| | Go       | https://github.com/hofstadter-io/cinful |
 | |
| | Rust     | https://github.com/sagiegurari/ci_info |
 | |
| | Kotlin   | https://github.com/cloudflightio/ci-info |
 | |
| 
 | |
| ## License
 | |
| 
 | |
| [MIT](LICENSE)
 |