first commit
This commit is contained in:
90
build/node_modules/electron-releases/test/index.js
generated
vendored
Normal file
90
build/node_modules/electron-releases/test/index.js
generated
vendored
Normal file
@@ -0,0 +1,90 @@
|
||||
require('chai').should()
|
||||
const {describe, it} = require('mocha')
|
||||
const releases = require('..')
|
||||
const semver = require('semver')
|
||||
const flat = require('flat')
|
||||
|
||||
describe('electron-releases', () => {
|
||||
it('is an array', () => {
|
||||
releases.should.be.an('array')
|
||||
})
|
||||
|
||||
it('contains over 270 releases', () => {
|
||||
releases.length.should.be.above(270)
|
||||
})
|
||||
|
||||
it('uses snake_case for all properties', () => {
|
||||
const keys = Object.keys(flat(releases))
|
||||
keys.length.should.be.above(0)
|
||||
keys.every(key => key.toLowerCase() === key).should.eq(true)
|
||||
})
|
||||
|
||||
it('sets `tag_name` on every release', () => {
|
||||
releases.every(release => {
|
||||
return release.tag_name &&
|
||||
release.tag_name.length &&
|
||||
release.tag_name.startsWith('v') &&
|
||||
semver.valid(release.tag_name.replace('v', ''))
|
||||
}).should.eq(true)
|
||||
})
|
||||
|
||||
it('sets `version` on every release', () => {
|
||||
releases.every(release => semver.valid(release.version)).should.eq(true)
|
||||
})
|
||||
|
||||
it('does NOT include drafts', () => {
|
||||
const prereleases = releases.filter(release => release.prerelease)
|
||||
prereleases.length.should.be.above(0)
|
||||
})
|
||||
|
||||
it('includes prereleases', () => {
|
||||
const prereleases = releases.filter(release => release.prerelease)
|
||||
prereleases.length.should.be.above(0)
|
||||
})
|
||||
|
||||
it('includes version data for V8, Chromium, Node.js, etc', () => {
|
||||
const releasesWithVersionData = releases.filter(release => release.deps)
|
||||
releasesWithVersionData.length.should.be.above(154)
|
||||
})
|
||||
|
||||
it('includes one release with the `beta` npm dist tag', () => {
|
||||
const betas = releases.filter(release => release.npm_dist_tag === 'beta')
|
||||
betas.length.should.eq(1)
|
||||
})
|
||||
|
||||
it('includes one release with the `latest` npm dist tag', () => {
|
||||
const latests = releases.filter(release => release.npm_dist_tag === 'latest')
|
||||
latests.length.should.eq(1)
|
||||
})
|
||||
|
||||
it('includes npm_package_name prop to indicate npm publish status', () => {
|
||||
releases.find(release => release.version === '1.4.7').npm_package_name.should.eq('electron')
|
||||
releases.find(release => release.version === '1.0.0').npm_package_name.should.eq('electron-prebuilt')
|
||||
releases.filter(release => release.npm_package_name === 'electron').length.should.be.above(62)
|
||||
|
||||
// assert exact number because the days of publishing electron-prebuilt are over
|
||||
releases.filter(release => release.npm_package_name === 'electron-prebuilt').length.should.eq(96)
|
||||
})
|
||||
|
||||
// for context, see https://electronjs.org/blog/npm-install-electron
|
||||
it('sets `electron` as `npm_package_name` for releases >=1.3.1', () => {
|
||||
const npmReleasesOfElectron = releases.filter(release => release.npm_package_name === 'electron')
|
||||
npmReleasesOfElectron.length.should.be.above(0)
|
||||
npmReleasesOfElectron.every(release => semver.gte(release.version, '1.3.1')).should.eq(true)
|
||||
})
|
||||
|
||||
it('sets `electron-prebuilt` as `npm_package_name` for releases <1.3.1', () => {
|
||||
const npmReleasesOfElectronPrebuilt = releases.filter(release => release.npm_package_name === 'electron-prebuilt')
|
||||
npmReleasesOfElectronPrebuilt.length.should.be.above(0)
|
||||
npmReleasesOfElectronPrebuilt.every(release => semver.lt(release.version, '1.3.1')).should.eq(true)
|
||||
})
|
||||
|
||||
it('includes processed changelogs in HTML format')//, () => {
|
||||
// })
|
||||
|
||||
it('includes a total_downloads property for each release', () => {
|
||||
const npmReleases = releases.filter(release => release.npm_package_name)
|
||||
npmReleases.length.should.be.above(0)
|
||||
npmReleases.every(release => release.total_downloads > 0).should.eq(true)
|
||||
})
|
||||
})
|
||||
Reference in New Issue
Block a user