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
|
|
|
})
|