@onlineapps/conn-base-storage 1.0.6 → 1.0.8

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 (35) hide show
  1. package/README.md +5 -4
  2. package/package.json +2 -2
  3. package/coverage/base.css +0 -224
  4. package/coverage/block-navigation.js +0 -87
  5. package/coverage/clover.xml +0 -297
  6. package/coverage/coverage-final.json +0 -6
  7. package/coverage/favicon.png +0 -0
  8. package/coverage/index.html +0 -131
  9. package/coverage/index.js.html +0 -1579
  10. package/coverage/internal-url-adapter.js.html +0 -604
  11. package/coverage/lcov-report/base.css +0 -224
  12. package/coverage/lcov-report/block-navigation.js +0 -87
  13. package/coverage/lcov-report/config.js.html +0 -244
  14. package/coverage/lcov-report/defaults.js.html +0 -214
  15. package/coverage/lcov-report/favicon.png +0 -0
  16. package/coverage/lcov-report/index.html +0 -176
  17. package/coverage/lcov-report/index.js.html +0 -2608
  18. package/coverage/lcov-report/internal-url-adapter.js.html +0 -559
  19. package/coverage/lcov-report/prettify.css +0 -1
  20. package/coverage/lcov-report/prettify.js +0 -2
  21. package/coverage/lcov-report/sharedUrlAdapter.js.html +0 -856
  22. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  23. package/coverage/lcov-report/sorter.js +0 -210
  24. package/coverage/lcov.info +0 -13
  25. package/coverage/prettify.css +0 -1
  26. package/coverage/prettify.js +0 -2
  27. package/coverage/sort-arrow-sprite.png +0 -0
  28. package/coverage/sorter.js +0 -210
  29. package/tests/component/storage.component.test.js +0 -363
  30. package/tests/integration/setup.js +0 -3
  31. package/tests/integration/storage.integration.test.js +0 -224
  32. package/tests/unit/internal-url-adapter.test.js +0 -210
  33. package/tests/unit/legacy.storage.test.js.bak +0 -614
  34. package/tests/unit/storage.extended.unit.test.js +0 -444
  35. package/tests/unit/storage.unit.test.js +0 -382
@@ -1,210 +0,0 @@
1
- /**
2
- * Tests for Internal URL Adapter
3
- */
4
-
5
- const InternalUrlAdapter = require('../../src/internal-url-adapter');
6
-
7
- describe('InternalUrlAdapter @unit', () => {
8
- let adapter;
9
-
10
- beforeEach(() => {
11
- adapter = new InternalUrlAdapter();
12
- });
13
-
14
- describe('URL Resolution', () => {
15
- test('should resolve internal://storage URL for Docker environment', () => {
16
- adapter.dockerNetwork = true;
17
- const internalUrl = 'internal://storage/bucket/path/to/file.json';
18
- const resolved = adapter.resolve(internalUrl);
19
-
20
- expect(resolved).toBe('http://api_services_storage:9000/bucket/path/to/file.json');
21
- });
22
-
23
- test('should resolve internal://storage URL for local environment', () => {
24
- adapter.dockerNetwork = false;
25
- const internalUrl = 'internal://storage/bucket/path/to/file.json';
26
- const resolved = adapter.resolve(internalUrl);
27
-
28
- expect(resolved).toBe('http://127.0.0.1:9000/bucket/path/to/file.json');
29
- });
30
-
31
- test('should resolve internal://registry URL', () => {
32
- adapter.dockerNetwork = false;
33
- const internalUrl = 'internal://registry/services/list';
34
- const resolved = adapter.resolve(internalUrl);
35
-
36
- expect(resolved).toBe('http://127.0.0.1:8080/services/list');
37
- });
38
-
39
- test('should resolve internal://monitoring URL', () => {
40
- adapter.dockerNetwork = true;
41
- const internalUrl = 'internal://monitoring/metrics';
42
- const resolved = adapter.resolve(internalUrl);
43
-
44
- expect(resolved).toBe('http://api_monitoring:3000/metrics');
45
- });
46
-
47
- test('should pass through non-internal URLs unchanged', () => {
48
- const normalUrl = 'http://example.com/path';
49
- const resolved = adapter.resolve(normalUrl);
50
-
51
- expect(resolved).toBe(normalUrl);
52
- });
53
-
54
- test('should handle URLs with query parameters', () => {
55
- adapter.dockerNetwork = false;
56
- const internalUrl = 'internal://storage/bucket/file?version=2&download=true';
57
- const resolved = adapter.resolve(internalUrl);
58
-
59
- expect(resolved).toBe('http://127.0.0.1:9000/bucket/file?version=2&download=true');
60
- });
61
-
62
- test('should throw error for unknown service', () => {
63
- const unknownUrl = 'internal://unknown-service/path';
64
-
65
- expect(() => adapter.resolve(unknownUrl)).toThrow('Unknown service: unknown-service');
66
- });
67
- });
68
-
69
- describe('Reverse URL Conversion', () => {
70
- test('should convert actual URL to internal format', () => {
71
- const actualUrl = 'http://api_services_storage:9000/bucket/path/file.json';
72
- const internal = adapter.toInternal(actualUrl, 'storage');
73
-
74
- expect(internal).toBe('internal://storage/bucket/path/file.json');
75
- });
76
-
77
- test('should preserve query parameters in conversion', () => {
78
- const actualUrl = 'http://127.0.0.1:9000/bucket/file?version=2';
79
- const internal = adapter.toInternal(actualUrl, 'storage');
80
-
81
- expect(internal).toBe('internal://storage/bucket/file?version=2');
82
- });
83
- });
84
-
85
- describe('Service Registration', () => {
86
- test('should register new service', () => {
87
- adapter.registerService('custom', 'custom-container:8080', '127.0.0.1:8080');
88
-
89
- const internalUrl = 'internal://custom/api/endpoint';
90
- adapter.dockerNetwork = true;
91
- const resolved = adapter.resolve(internalUrl);
92
-
93
- expect(resolved).toBe('http://custom-container:8080/api/endpoint');
94
- });
95
-
96
- test('should override existing service', () => {
97
- adapter.registerService('storage', 'new-storage:9001', '127.0.0.1:9001');
98
-
99
- const internalUrl = 'internal://storage/bucket/file';
100
- adapter.dockerNetwork = false;
101
- const resolved = adapter.resolve(internalUrl);
102
-
103
- expect(resolved).toBe('http://127.0.0.1:9001/bucket/file');
104
- });
105
- });
106
-
107
- describe('Response Transformation', () => {
108
- test('should transform internal URLs in response object', () => {
109
- adapter.dockerNetwork = false;
110
-
111
- const response = {
112
- url: 'internal://storage/bucket/file.json',
113
- backup: 'internal://storage/backup/file.json',
114
- metadata: {
115
- thumbnail: 'internal://storage/thumbnails/thumb.jpg'
116
- }
117
- };
118
-
119
- const transformed = adapter.transformResponse(response);
120
-
121
- expect(transformed.url).toBe('http://127.0.0.1:9000/bucket/file.json');
122
- expect(transformed.backup).toBe('http://127.0.0.1:9000/backup/file.json');
123
- expect(transformed.metadata.thumbnail).toBe('http://127.0.0.1:9000/thumbnails/thumb.jpg');
124
- });
125
-
126
- test('should handle arrays in response', () => {
127
- adapter.dockerNetwork = false;
128
-
129
- const response = {
130
- files: [
131
- 'internal://storage/file1.json',
132
- 'internal://storage/file2.json',
133
- 'http://external.com/file3.json'
134
- ]
135
- };
136
-
137
- const transformed = adapter.transformResponse(response);
138
-
139
- expect(transformed.files[0]).toBe('http://127.0.0.1:9000/file1.json');
140
- expect(transformed.files[1]).toBe('http://127.0.0.1:9000/file2.json');
141
- expect(transformed.files[2]).toBe('http://external.com/file3.json');
142
- });
143
-
144
- test('should handle nested objects', () => {
145
- adapter.dockerNetwork = true;
146
-
147
- const response = {
148
- data: {
149
- primary: {
150
- location: 'internal://storage/primary/data.json'
151
- },
152
- secondary: {
153
- location: 'internal://storage/secondary/data.json'
154
- }
155
- }
156
- };
157
-
158
- const transformed = adapter.transformResponse(response);
159
-
160
- expect(transformed.data.primary.location).toBe('http://api_services_storage:9000/primary/data.json');
161
- expect(transformed.data.secondary.location).toBe('http://api_services_storage:9000/secondary/data.json');
162
- });
163
- });
164
-
165
- describe('Environment Detection', () => {
166
- test('should respect DOCKER_NETWORK env hint via runtime config', () => {
167
- const original = process.env.DOCKER_NETWORK;
168
- process.env.DOCKER_NETWORK = 'true';
169
-
170
- const adapter1 = new InternalUrlAdapter();
171
- expect(adapter1.dockerNetwork).toBe(true);
172
-
173
- if (original === undefined) {
174
- delete process.env.DOCKER_NETWORK;
175
- } else {
176
- process.env.DOCKER_NETWORK = original;
177
- }
178
- });
179
- });
180
-
181
- describe('Available Services', () => {
182
- test('should return list of available services', () => {
183
- const services = adapter.getAvailableServices();
184
-
185
- expect(services).toContain('storage');
186
- expect(services).toContain('registry');
187
- expect(services).toContain('monitoring');
188
- expect(services).toContain('mq');
189
- expect(services).toContain('cache');
190
- });
191
- });
192
-
193
- describe('Custom Configuration', () => {
194
- test('should accept custom service mappings', () => {
195
- const customAdapter = new InternalUrlAdapter({
196
- services: {
197
- 'my-service': {
198
- docker: 'my-container:3000',
199
- local: '127.0.0.1:3000'
200
- }
201
- }
202
- });
203
-
204
- customAdapter.dockerNetwork = false;
205
- const resolved = customAdapter.resolve('internal://my-service/api');
206
-
207
- expect(resolved).toBe('http://127.0.0.1:3000/api');
208
- });
209
- });
210
- });