Update package version to 1.0.7 and modify entry points in package.json; remove TEAMCITY.md documentation file.

This commit is contained in:
2025-11-23 00:59:56 -05:00
parent 75022e05c8
commit 3deadc6e75
2 changed files with 6 additions and 116 deletions

View File

@@ -1,110 +0,0 @@
# TeamCity Test Integration
This project includes TeamCity test reporting integration using the `TeamcityReporter` class.
## Usage
### In TeamCity CI
When running tests in TeamCity, use the `test:teamcity` script:
```bash
bun run test:teamcity
```
This will automatically detect the TeamCity environment (via `TEAMCITY_VERSION` env variable) and output test results in TeamCity's service message format.
### Local Development
For local testing, simply use:
```bash
bun test
```
The TeamCity reporter will be disabled automatically when not running in TeamCity.
## How It Works
The integration uses a TAP (Test Anything Protocol) to TeamCity converter:
1. **TAP Reporter**: Bun's built-in TAP reporter outputs test results in TAP format
2. **Converter**: `scripts/test-tap-teamcity.ts` parses TAP output and converts it to TeamCity service messages
3. **TeamcityReporter**: `tests/TeamcityReporter.ts` formats and outputs TeamCity service messages
## TeamCity Service Messages
The reporter outputs the following TeamCity service messages:
- `##teamcity[testSuiteStarted name='...']` - When a test suite starts
- `##teamcity[testSuiteFinished name='...']` - When a test suite ends
- `##teamcity[testStarted name='...']` - When a test starts
- `##teamcity[testFinished name='...']` - When a test completes successfully
- `##teamcity[testFailed name='...' message='...' details='...']` - When a test fails
- `##teamcity[testIgnored name='...']` - When a test is skipped
## Special Character Escaping
The reporter properly escapes special characters according to [TeamCity's specification](https://www.jetbrains.com/help/teamcity/service-messages.html#Escaped+values):
- `|``||`
- `'``|'`
- `\n``|n`
- `\r``|r`
- `[``|[`
- `]``|]`
## Available Test Scripts
| Script | Description |
|--------|-------------|
| `bun test` | Run tests normally (local development) |
| `bun test --watch` | Run tests in watch mode |
| `bun run test:teamcity` | Run tests with TeamCity reporting |
| `bun run ci-test` | Alias for `test:teamcity` (used in CI) |
## TeamCity Build Configuration
Add this build step to your TeamCity build configuration:
```bash
#!/bin/bash
set -e
# Install dependencies
bun install
# Run tests with TeamCity reporting
bun run ci-test
```
## Files
- `tests/TeamcityReporter.ts` - TeamCity service message formatter
- `scripts/test-tap-teamcity.ts` - TAP to TeamCity converter
- `scripts/test-teamcity.ts` - Alternative direct output parser (not currently used)
- `tests/setup.ts` - Test setup utilities
## Testing the Integration
To test TeamCity reporting locally:
```bash
# Simulate TeamCity environment
export TEAMCITY_VERSION="2024.1"
bun run test:teamcity
# Unset when done
unset TEAMCITY_VERSION
```
You should see output like:
```
##teamcity[testSuiteStarted name='HashMap']
##teamcity[testStarted name='HashMap > constructor > should create an empty map with default capacity']
##teamcity[testFinished name='HashMap > constructor > should create an empty map with default capacity']
...
##teamcity[testSuiteFinished name='HashMap']
```

View File

@@ -1,17 +1,17 @@
{
"name": "@techniker-me/hash-map",
"version": "1.0.6",
"version": "1.0.8",
"description": "A robust HashMap implementation following OOP SOLID principles",
"module": "src/index.ts",
"type": "module",
"main": "src/index.ts",
"main": "browser/index.ts",
"module": "node/index.js",
"types": "types/index.d.ts",
"exports": {
".": {
"node": "./node/index.js",
"browser": "./browser/index.js"
"node": "node/index.js",
"browser": "browser/index.js"
},
"./types": "./types/index.d.ts"
"./types": "types/index.d.ts"
},
"files": [
"node",