mirror of
https://github.com/stablyai/orca.git
synced 2026-10-31 00:57:45 +00:00
36 lines
1.2 KiB
JavaScript
36 lines
1.2 KiB
JavaScript
import { createRequire } from 'node:module'
|
|
import { describe, expect, it } from 'vitest'
|
|
|
|
function dependencyRequire(packages) {
|
|
let require = createRequire(import.meta.url)
|
|
for (const name of packages) {
|
|
require = createRequire(require.resolve(name))
|
|
}
|
|
return require
|
|
}
|
|
|
|
// Resolve through declared consumers so hoisting cannot select another workspace's copy.
|
|
const sprintfRequire = dependencyRequire([
|
|
'electron-builder',
|
|
'app-builder-lib',
|
|
'@electron/get',
|
|
'global-agent',
|
|
'roarr'
|
|
])
|
|
|
|
describe('installed dependency security patches', () => {
|
|
it.each(['src/sprintf.js', 'dist/sprintf.min.js'])('bounds numeric precision in %s', (entry) => {
|
|
const { sprintf } = sprintfRequire(`sprintf-js/${entry}`)
|
|
for (const type of ['e', 'f', 'g']) {
|
|
expect(() => sprintf(`%.${'9'.repeat(500)}${type}`, 1.234)).not.toThrow()
|
|
expect(sprintf(`%.${'9'.repeat(500)}${type}`, 1.234).length).toBeLessThan(110)
|
|
}
|
|
expect(sprintf('%.2f', 1.234)).toBe('1.23')
|
|
expect(sprintf('%.2e', 1.234)).toBe('1.23e+0')
|
|
expect(sprintf('%.2g', 1.234)).toBe('1.2')
|
|
expect(sprintf('%.3s', 'abcdef')).toBe('abc')
|
|
expect(sprintf('%.0f', 1.7)).toBe('2')
|
|
expect(sprintf('%.0e', 1.7)).toBe('2e+0')
|
|
})
|
|
})
|