Skip to content

Commit

Permalink
Move test origins to separate file
Browse files Browse the repository at this point in the history
  • Loading branch information
cookpete committed Nov 7, 2017
1 parent a6ae95e commit f8b98b5
Show file tree
Hide file tree
Showing 4 changed files with 39 additions and 64 deletions.
49 changes: 14 additions & 35 deletions test/commits.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,65 +3,44 @@ import { expect } from 'chai'
import { readFile } from 'fs-extra'
import { join } from 'path'

import origins from './data/origins'
import commits from './data/commits'
import { __get__ } from '../src/commits'

const parseCommits = __get__('parseCommits')
// const parseCommit = __get__('parseCommit')
// const getTag = __get__('getTag')
// const getSubject = __get__('getSubject')
// const getStats = __get__('getStats')
const getFixes = __get__('getFixes')
const getMerge = __get__('getMerge')
// const getCommitLink = __get__('getCommitLink')
// const getIssueLink = __get__('getIssueLink')
// const getPullLink = __get__('getPullLink')

const origin = {
github: {
hostname: 'github.com',
url: 'https://github.com/user/repo'
},
gitlab: {
hostname: 'gitlab.com',
url: 'https://gitlab.com/user/repo'
},
bitbucket: {
hostname: 'bitbucket.org',
url: 'https://bitbucket.org/user/repo'
}
}

describe('parseCommits', () => {
it('parses commits', async () => {
const gitLog = await readFile(join(__dirname, 'data', 'git-log.txt'), 'utf-8')
expect(parseCommits(gitLog, origin.github)).to.deep.equal(commits)
expect(parseCommits(gitLog, origins.github)).to.deep.equal(commits)
})
})

describe('getFixes', () => {
it('returns null with no fixes', () => {
const message = 'Commit message with no fixes'
expect(getFixes(message, origin.github)).to.equal(null)
expect(getFixes(message, origins.github)).to.equal(null)
})

it('parses a single fix', () => {
const message = 'Commit that fixes #12'
expect(getFixes(message, origin.github)).to.deep.equal([
expect(getFixes(message, origins.github)).to.deep.equal([
{ id: '12', href: 'https://github.com/user/repo/issues/12' }
])
})

it('parses fix in commit notes', () => {
const message = 'Commit message\n\nCloses #8'
expect(getFixes(message, origin.github)).to.deep.equal([
expect(getFixes(message, origins.github)).to.deep.equal([
{ id: '8', href: 'https://github.com/user/repo/issues/8' }
])
})

it('parses multiple fixes', () => {
const message = 'Commit message\n\nFixes #1, fix #2, resolved #3, closes #4'
expect(getFixes(message, origin.github)).to.deep.equal([
expect(getFixes(message, origins.github)).to.deep.equal([
{ id: '1', href: 'https://github.com/user/repo/issues/1' },
{ id: '2', href: 'https://github.com/user/repo/issues/2' },
{ id: '3', href: 'https://github.com/user/repo/issues/3' },
Expand All @@ -71,14 +50,14 @@ describe('getFixes', () => {

it('parses fixes by issue URL', () => {
const message = 'Commit message\n\nFixes https://github.com/user/repo/issues/1'
expect(getFixes(message, origin.github)).to.deep.equal([
expect(getFixes(message, origins.github)).to.deep.equal([
{ id: '1', href: 'https://github.com/user/repo/issues/1' }
])
})

it('parses external repo issues', () => {
const message = 'Commit message\n\nFixes https://github.com/other-user/external-repo/issues/1'
expect(getFixes(message, origin.github)).to.deep.equal([
expect(getFixes(message, origins.github)).to.deep.equal([
{ id: '1', href: 'https://github.com/other-user/external-repo/issues/1' }
])
})
Expand All @@ -87,13 +66,13 @@ describe('getFixes', () => {
describe('getMerge', () => {
it('returns null on fail', () => {
const message = 'Not a merge commit'
expect(getMerge(message, origin.github)).to.equal(null)
expect(getMerge(message, origins.github)).to.equal(null)
})

describe('GitHub', () => {
it('parses a merge', () => {
const message = 'Merge pull request #3 from repo/branch\n\nPull request title'
expect(getMerge(message, origin.github)).to.deep.equal({
expect(getMerge(message, origins.github)).to.deep.equal({
id: '3',
message: 'Pull request title',
href: 'https://github.com/user/repo/pull/3'
Expand All @@ -102,7 +81,7 @@ describe('getMerge', () => {

it('parses a squash merge', () => {
const message = 'Update dependencies to enable Greenkeeper 🌴 (#10)\n\n* chore(package): update dependencies'
expect(getMerge(message, origin.github)).to.deep.equal({
expect(getMerge(message, origins.github)).to.deep.equal({
id: '10',
message: 'Update dependencies to enable Greenkeeper 🌴',
href: 'https://github.com/user/repo/pull/10'
Expand All @@ -111,14 +90,14 @@ describe('getMerge', () => {

it('does not parse a not-quite squash merge', () => {
const message = 'Update dependencies to enable Greenkeeper 🌴 (#10)\n\nSomething that isnt a squashed commit'
expect(getMerge(message, origin.github)).to.equal(null)
expect(getMerge(message, origins.github)).to.equal(null)
})
})

describe('GitLab', () => {
it('parses a merge', () => {
const message = 'Merge branch \'branch\' into \'master\'\n\nMemoize GitLab logger to reduce open file descriptors\n\nCloses gitlab-ee#3664\n\nSee merge request !15007'
expect(getMerge(message, origin.gitlab)).to.deep.equal({
expect(getMerge(message, origins.gitlab)).to.deep.equal({
id: '15007',
message: 'Memoize GitLab logger to reduce open file descriptors',
href: 'https://gitlab.com/user/repo/merge_requests/15007'
Expand All @@ -129,7 +108,7 @@ describe('getMerge', () => {
describe('BitBucket', () => {
it('parses a merge', () => {
const message = 'Merged in eshvedai/fix-schema-issue (pull request #4518)\n\nfix(component): re-export createSchema from editor-core\n\nApproved-by: Scott Sidwell <ssidwell@atlassian.com>'
expect(getMerge(message, origin.bitbucket)).to.deep.equal({
expect(getMerge(message, origins.bitbucket)).to.deep.equal({
id: '4518',
message: 'fix(component): re-export createSchema from editor-core',
href: 'https://bitbucket.org/user/repo/pull-requests/4518'
Expand Down
14 changes: 14 additions & 0 deletions test/data/origins.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
export default {
github: {
hostname: 'github.com',
url: 'https://github.com/user/repo'
},
gitlab: {
hostname: 'gitlab.com',
url: 'https://gitlab.com/user/repo'
},
bitbucket: {
hostname: 'bitbucket.org',
url: 'https://bitbucket.org/user/repo'
}
}
30 changes: 8 additions & 22 deletions test/origin.js
Original file line number Diff line number Diff line change
@@ -1,55 +1,41 @@
import { describe, it } from 'mocha'
import { expect } from 'chai'

import origins from './data/origins'
import {
fetchOrigin,
__Rewire__ as mock,
__ResetDependency__ as unmock
} from '../src/origin'

const origin = {
github: {
hostname: 'github.com',
url: 'https://github.com/user/repo'
},
gitlab: {
hostname: 'gitlab.com',
url: 'https://gitlab.com/user/repo'
},
bitbucket: {
hostname: 'bitbucket.org',
url: 'https://bitbucket.org/user/repo'
}
}

const TEST_DATA = [
{
remote: 'https://github.com/user/repo',
expected: origin.github
expected: origins.github
},
{
remote: 'https://github.com:8080/user/repo',
expected: origin.github
expected: origins.github
},
{
remote: 'git@github.com:user/repo.git',
expected: origin.github
expected: origins.github
},
{
remote: 'https://gitlab.com/user/repo',
expected: origin.gitlab
expected: origins.gitlab
},
{
remote: 'git@gitlab.com:user/repo.git',
expected: origin.gitlab
expected: origins.gitlab
},
{
remote: 'https://bitbucket.org/user/repo',
expected: origin.bitbucket
expected: origins.bitbucket
},
{
remote: 'git@bitbucket.org:user/repo.git',
expected: origin.bitbucket
expected: origins.bitbucket
}
]

Expand Down
10 changes: 3 additions & 7 deletions test/releases.js
Original file line number Diff line number Diff line change
@@ -1,22 +1,18 @@
import { describe, it } from 'mocha'
import { expect } from 'chai'

import origins from './data/origins'
import commits from './data/commits'
import releases from './data/releases'
import { parseReleases } from '../src/releases'

const origin = {
hostname: 'github.com',
url: 'https://github.com/user/repo'
}

describe('parseReleases', () => {
it('parses releases', () => {
expect(parseReleases(commits, origin, null, false)).to.deep.equal(releases)
expect(parseReleases(commits, origins.github, null, false)).to.deep.equal(releases)
})

it('supports a package version override', () => {
const result = parseReleases(commits, origin, 'v3.0.0', false)
const result = parseReleases(commits, origins.github, 'v3.0.0', false)
expect(result).to.be.an('array')
expect(result[0]).to.have.property('tag', 'v3.0.0')
})
Expand Down

0 comments on commit f8b98b5

Please sign in to comment.