Skip to content

Commit

Permalink
Merge branch 'master' into output-files
Browse files Browse the repository at this point in the history
  • Loading branch information
vkoves committed Feb 25, 2018
2 parents f909546 + 8b669f8 commit 65b6a19
Show file tree
Hide file tree
Showing 3 changed files with 55 additions and 9 deletions.
35 changes: 31 additions & 4 deletions lib/puppeteer-to-v8.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,34 @@
class PuppeteerToV8 {
// constructor () {}
}
constructor (coverageInfo) {
this.coverageInfo = coverageInfo
}

setCoverageInfo (coverageInfo) {
this.coverageInfo = coverageInfo
}

convertCoverage () {
// Iterate through coverage info and create IDs
let id = 0

module.exports = () => {
return new PuppeteerToV8()
return this.coverageInfo.map(coverageItem => {
return {
scriptId: id++,
url: coverageItem.url,
functions: [{ ranges: coverageItem.ranges.map(this.convertRange) }]
}
})
}

// Takes in a Puppeteer range object with start and end properties and
// converts it to a V8 range with startOffset, endOffset, and count properties
convertRange (range) {
return {
startOffset: range.start,
endOffset: range.end,
count: 1
}
}
}

module.exports = (coverageInfo) => new PuppeteerToV8(coverageInfo)
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@
"standard-version": "^4.3.0"
},
"dependencies": {
"v8-to-istanbul": "^1.2.0",
"yargs": "^11.0.0"
},
"standard": {
Expand Down
28 changes: 23 additions & 5 deletions test/puppeteer-to-v8.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,29 @@
/* globals describe, it */
/* globals describe, it, before */

const puppeteerToV8 = require('../lib/puppeteer-to-v8')()
var PuppeteerToV8 = require('../lib/puppeteer-to-v8')()

require('chai').should()

describe('puppeteer-to-v8', () => {
let v8Coverage
const fixture = require('./fixtures/function-coverage-missing')

before(() => {
PuppeteerToV8.setCoverageInfo(fixture)

v8Coverage = PuppeteerToV8.convertCoverage()
})

it('translates ranges into v8 format', () => {
console.info(puppeteerToV8)
// V8 coverage has ranges on a functions object, so check for that
let firstV8Range = v8Coverage[0].functions[0].ranges[0]
let firstFixtureRange = fixture[0].ranges[0]

// The V8 range object has a few transformations, in particular
// start -> startOffset, end -> endOffset and count = 1 being added
firstV8Range.startOffset.should.eql(firstFixtureRange.start)
firstV8Range.endOffset.should.eql(firstFixtureRange.end)
firstV8Range.count.should.eql(1)
})

// use mkdirp:
Expand All @@ -17,8 +34,9 @@ describe('puppeteer-to-v8', () => {

// look at the uuid library:
// uuid.v4()
it('generates scriptID', () => {

it('generates scriptId', () => {
// Ensures that the scriptId is of type 'number'
(typeof v8Coverage[0].scriptId).should.eql('number')
})

// for this test case, make sure we cover what happens
Expand Down

0 comments on commit 65b6a19

Please sign in to comment.