35 lines
1.2 KiB
JavaScript
35 lines
1.2 KiB
JavaScript
import { describe, expect, it } from 'vitest';
|
|
import { transformPath } from '../../src/routing/platform-transformers.js';
|
|
|
|
describe('crates.io path transformation', () => {
|
|
it('should transform crate download URLs correctly', () => {
|
|
const path = '/crates/serde/1.0.0/download';
|
|
const result = transformPath(path, 'crates');
|
|
expect(result).toBe('/api/v1/crates/serde/1.0.0/download');
|
|
});
|
|
|
|
it('should transform crate metadata URLs correctly', () => {
|
|
const path = '/crates/serde';
|
|
const result = transformPath(path, 'crates');
|
|
expect(result).toBe('/api/v1/crates/serde');
|
|
});
|
|
|
|
it('should transform crate version URLs correctly', () => {
|
|
const path = '/crates/serde/1.0.0';
|
|
const result = transformPath(path, 'crates');
|
|
expect(result).toBe('/api/v1/crates/serde/1.0.0');
|
|
});
|
|
|
|
it('should transform search URLs correctly', () => {
|
|
const path = '/crates/?q=serde';
|
|
const result = transformPath(path, 'crates');
|
|
expect(result).toBe('/api/v1/crates?q=serde');
|
|
});
|
|
|
|
it('should transform root crates URL correctly', () => {
|
|
const path = '/crates/';
|
|
const result = transformPath(path, 'crates');
|
|
expect(result).toBe('/api/v1/crates');
|
|
});
|
|
});
|