hyparquet-writer/test/package.test.js

40 lines
1.3 KiB
JavaScript
Raw Normal View History

2025-03-20 19:21:52 +00:00
import { describe, expect, it } from 'vitest'
import packageJson from '../package.json' with { type: 'json' }
describe('package.json', () => {
it('should have the correct name', () => {
expect(packageJson.name).toBe('hyparquet-writer')
})
2025-04-17 07:38:17 +00:00
2025-03-20 19:21:52 +00:00
it('should have a valid version', () => {
expect(packageJson.version).toMatch(/^\d+\.\d+\.\d+$/)
})
2025-04-17 07:38:17 +00:00
2025-03-20 19:21:52 +00:00
it('should have MIT license', () => {
expect(packageJson.license).toBe('MIT')
})
2025-04-17 07:38:17 +00:00
2025-03-20 19:21:52 +00:00
it('should have precise dev dependency versions', () => {
2025-04-01 06:32:14 +00:00
const { dependencies, devDependencies } = packageJson
const allDependencies = { ...dependencies, ...devDependencies }
Object.values(allDependencies).forEach(version => {
2025-03-20 19:21:52 +00:00
expect(version).toMatch(/^\d+\.\d+\.\d+$/)
})
})
2025-04-17 07:38:17 +00:00
2025-04-01 06:32:14 +00:00
it('should have no peer dependencies', () => {
2025-03-20 19:21:52 +00:00
expect('peerDependencies' in packageJson).toBe(false)
})
2025-04-17 07:38:17 +00:00
it('should have exports with types first', () => {
const { exports } = packageJson
expect(Object.keys(exports)).toEqual(['.', './src/*.js'])
// node vs default (browser)
expect(Object.keys(exports['.'])).toEqual(['node', 'default'])
expect(Object.keys(exports['.'].node)).toEqual(['types', 'import'])
expect(Object.keys(exports['.'].default)).toEqual(['types', 'import'])
// deep imports
expect(Object.keys(exports['./src/*.js'])).toEqual(['types', 'import'])
})
2025-03-20 19:21:52 +00:00
})