/** * Ensure Bare Node url shim matches Node for docker-modem call patterns. */ import test from 'brittle' import { createRequire } from 'module' const require = createRequire(import.meta.url) const nodeUrl = require('url') const shim = require('../build/shims/node-url.cjs') test('url.resolve matches Node for docker-modem patterns', (t) => { const cases = [ ['http://localhost:2375/v1.41/', 'containers/json'], ['http://localhost:2375/v1.41', 'containers/json'], ['http://localhost/v1.41/', '/v1.41/containers/json'], ['/v1.41/', 'containers/json'], ] for (const [a, b] of cases) { t.is(shim.resolve(a, b), nodeUrl.resolve(a, b), `${a} + ${b}`) } }) test('url.parse provides host/path/protocol', (t) => { const p = shim.parse('http://localhost:2375/v1.41/containers/json') t.is(p.protocol, 'http:') t.is(p.host, 'localhost:2375') t.is(p.path, '/v1.41/containers/json') }) test('url.format builds request URLs', (t) => { t.is( shim.format({ protocol: 'http:', hostname: 'localhost', port: '2375', pathname: '/v1.41/x', }), 'http://localhost:2375/v1.41/x' ) t.ok(typeof shim.URL === 'function') })