coc-vscode-loader 1.3.0 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/converter/README.md +66 -11
  2. package/converter/package-lock.json +1365 -148
  3. package/converter/package.json +10 -5
  4. package/converter/scripts/check-tests.ts +58 -0
  5. package/converter/scripts/smoke-test.ts +234 -0
  6. package/converter/src/cli.ts +4 -1
  7. package/converter/src/convert.test.ts +292 -0
  8. package/converter/src/convert.ts +5 -3
  9. package/converter/src/presets.test.ts +37 -0
  10. package/converter/src/registry-validation.test.ts +127 -0
  11. package/converter/src/scanner.test.ts +67 -0
  12. package/converter/src/scanner.ts +1 -1
  13. package/converter/src/steps/bridge.test.ts +72 -0
  14. package/converter/src/steps/language-client.test.ts +131 -0
  15. package/converter/src/steps/mark-unsupported.test.ts +109 -0
  16. package/converter/src/steps/snippets.test.ts +114 -0
  17. package/converter/src/steps/source.test.ts +117 -0
  18. package/converter/src/steps/source.ts +2 -4
  19. package/converter/src/transforms/class-to-factory.test.ts +60 -0
  20. package/converter/src/transforms/enum-offset.test.ts +27 -0
  21. package/converter/src/transforms/import-mapping.test.ts +227 -0
  22. package/converter/src/transforms/import-mapping.ts +32 -11
  23. package/converter/src/transforms/language-client.test.ts +48 -0
  24. package/converter/src/transforms/provider-register.test.ts +65 -0
  25. package/converter/src/transforms/provider-register.ts +1 -1
  26. package/converter/src/transforms/strip-volar.test.ts +35 -0
  27. package/converter/src/types.ts +2 -0
  28. package/converter/vitest.config.ts +8 -0
  29. package/lib/index.js +99 -50
  30. package/package.json +1 -1
@@ -93,19 +93,74 @@ Adding a new bridge type = add a new preset in `presets.ts`, no changes to main
93
93
 
94
94
  See [../docs/converter-design-v2.md](../docs/converter-design-v2.md).
95
95
 
96
+ ## Testing
97
+
98
+ ```bash
99
+ npm test # Unit tests (115 tests, 15 files) + coverage check
100
+ npm run test:smoke # Registry smoke test — converts all 112 entries
101
+ npm run test:watch # Watch mode for development
102
+ npm run check:tests # Verify every source file has a matching test
103
+ ```
104
+
105
+ **Unit tests** cover all transforms, steps, scanner, and the main convert flow:
106
+
107
+ | Test file | Tests | What it covers |
108
+ |-----------|-------|----------------|
109
+ | `transforms/import-mapping.test.ts` | 21 | All text-level replacements |
110
+ | `transforms/class-to-factory.test.ts` | 7 | `new Xxx()` → `Xxx.create()` |
111
+ | `transforms/provider-register.test.ts` | 7 | Provider signature adaptation |
112
+ | `transforms/enum-offset.test.ts` | 3 | Enum value offset annotations |
113
+ | `transforms/strip-volar.test.ts` | 4 | Volar framework import stripping |
114
+ | `steps/source.test.ts` | 8 | File copy, transforms pipeline, keepDeps |
115
+ | `steps/snippets.test.ts` | 4 | Snippet file copy and error handling |
116
+ | `steps/language-client.test.ts` | 5 | LanguageClient code generation |
117
+ | `steps/bridge.test.ts` | 4 | Bridge preset resolution and code injection |
118
+ | `steps/mark-unsupported.test.ts` | 7 | Unsupported API marking |
119
+ | `convert.test.ts` | 15 | Full conversion pipeline (text replacements, output generation, step orchestration) |
120
+ | `registry-validation.test.ts` | 12 | Registry.json schema (112 entries) |
121
+ | `scanner.test.ts` | 6 | API scanner detection |
122
+ | `presets.test.ts` | 5 | Bridge preset definitions |
123
+ | `transforms/language-client.test.ts` | 5 | LanguageClient AST adaptation |
124
+
125
+ **Smoke test** — `npm run test:smoke` clones all 112 registry entries and runs the full converter on each, validating output structure. Repos are cached and updated incrementally via `git fetch`.
126
+
127
+ ```bash
128
+ # Force re-clone all repos
129
+ NO_CACHE=1 npm run test:smoke
130
+
131
+ # Run with more concurrent downloads
132
+ CONCURRENCY=12 npm run test:smoke
133
+ ```
134
+
96
135
  ## File structure
97
136
 
98
- | File | Lines | Description |
99
- |------|-------|-------------|
100
- | `src/cli.ts` | 59 | CLI entry |
101
- | `src/convert.ts` | 461 | Main flow + template generation + API replacement |
102
- | `src/scanner.ts` | 52 | API scanner + plugin classification |
103
- | `src/transforms/import-mapping.ts` | 193 | Import replacement |
104
- | `src/transforms/language-client.ts` | 48 | LanguageClient adaptation |
105
- | `src/transforms/class-to-factory.ts` | 53 | new Xxx() → Xxx.create() |
106
- | `src/transforms/provider-register.ts` | 61 | Provider registration signature fixes |
107
- | `src/transforms/enum-offset.ts` | 32 | Enum value offset annotations |
108
- | **Total** | **~959** | |
137
+ ```
138
+ src/
139
+ ├── cli.ts CLI entry
140
+ ├── convert.ts Main flow + template generation + API replacement
141
+ ├── scanner.ts API scanner
142
+ ├── presets.ts Bridge preset definitions
143
+ ├── types.ts Type definitions
144
+ ├── steps/
145
+ │ ├── index.ts Step registry
146
+ │ ├── source.ts Source file copy + transforms
147
+ │ ├── snippets.ts Snippet conversion
148
+ │ ├── language-client.ts LanguageClient code generation
149
+ │ ├── bridge.ts Bridge preset code generation
150
+ │ └── mark-unsupported.ts Unsupported API marking
151
+ └── transforms/
152
+ ├── import-mapping.ts Import replacement
153
+ ├── class-to-factory.ts new Xxx() → Xxx.create()
154
+ ├── provider-register.ts Provider signature fixes
155
+ ├── language-client.ts LanguageClient AST adaptation
156
+ ├── strip-volar.ts Volar framework stripping
157
+ └── enum-offset.ts Enum value offset annotations
158
+ scripts/
159
+ ├── smoke-test.ts Registry smoke test (112 entries)
160
+ └── check-tests.ts Test coverage enforcement
161
+ ```
162
+
163
+ Each source file has a corresponding `.test.ts` with unit tests — see [Testing](#testing) above.
109
164
 
110
165
  ## Handled API differences
111
166