46 行
1.4 KiB
JavaScript
46 行
1.4 KiB
JavaScript
import assert from 'node:assert/strict'
|
|
import test from 'node:test'
|
|
|
|
import {
|
|
BUGCOLLECT_ARTIFACT_UPLOAD_PATH,
|
|
createArtifactUploadRequest,
|
|
createRnSourceMapForm,
|
|
} from './artifact-upload.mjs'
|
|
|
|
test('RN Source Map uses the frozen artifact upload contract', () => {
|
|
const form = createRnSourceMapForm({
|
|
appKey: 'app',
|
|
platform: 'android',
|
|
appVersion: '8.0.0',
|
|
buildId: 'build-1',
|
|
moduleId: 'orders',
|
|
moduleVersion: '1.0.2',
|
|
bundleHash: 'a'.repeat(64),
|
|
fileBytes: new Uint8Array([1, 2, 3]),
|
|
fileName: 'orders.android.map',
|
|
})
|
|
assert.equal(BUGCOLLECT_ARTIFACT_UPLOAD_PATH, '/bugcollect/v1/artifacts/upload')
|
|
assert.deepEqual(
|
|
Object.fromEntries(
|
|
[...form.entries()]
|
|
.filter(([, value]) => typeof value === 'string')
|
|
.map(([key, value]) => [key, value]),
|
|
),
|
|
{
|
|
artifactType: 'RN_SOURCEMAP',
|
|
appKey: 'app',
|
|
platform: 'android',
|
|
appVersion: '8.0.0',
|
|
buildId: 'build-1',
|
|
moduleId: 'orders',
|
|
moduleVersion: '1.0.2',
|
|
bundleHash: 'a'.repeat(64),
|
|
},
|
|
)
|
|
assert.equal(form.get('file') instanceof Blob, true)
|
|
const request = createArtifactUploadRequest('release-token', form)
|
|
assert.deepEqual(request.headers, { Authorization: 'Bearer release-token' })
|
|
assert.equal(request.body, form)
|
|
assert.throws(() => createArtifactUploadRequest('', form), /requires an API token/)
|
|
})
|