readme-badger
Version:
Inserts badges into GitHub READMEs
148 lines (101 loc) • 6.22 kB
JavaScript
/* jshint node:true, unused:strict */
/* global describe:true, it:true */
"use strict";
var assert = require('assert');
var fs = require('fs');
var badger = require('..');
describe('readme-badger', function() {
var imageUrl = 'https://badges.gitter.im/Join%20Chat.svg';
var linkUrl = 'https://gitter.im/myorg/myrepo?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge';
var altText = 'Join the chat at https://gitter.im/myorg/myrepo';
it('inserts into markdown', function() {
var before = fs.readFileSync(__dirname + '/examples/markdown-before.md', { encoding: 'utf8' });
var after = fs.readFileSync(__dirname + '/examples/markdown-after.md', { encoding: 'utf8' });
var result = badger.addBadge(before, 'md', imageUrl, linkUrl, altText);
assert.equal(result, after);
});
it('inserts into markdown that already has a badge', function() {
var before = fs.readFileSync(__dirname + '/examples/markdown-hasbadge-before.md', { encoding: 'utf8' });
var after = fs.readFileSync(__dirname + '/examples/markdown-hasbadge-after.md', { encoding: 'utf8' });
var result = badger.addBadge(before, 'md', imageUrl, linkUrl, altText);
assert.equal(result, after);
});
it('inserts into markdown that already has a badge with parenthesis link', function() {
var before = fs.readFileSync(__dirname + '/examples/markdown-hasbadge-parenthesis-link-before.md', { encoding: 'utf8' });
var after = fs.readFileSync(__dirname + '/examples/markdown-hasbadge-parenthesis-link-after.md', { encoding: 'utf8' });
var result = badger.addBadge(before, 'md', imageUrl, linkUrl, altText);
assert.equal(result, after);
});
it('inserts into markdown that has empty badge', function() {
var before = fs.readFileSync(__dirname + '/examples/markdown-empty-badge-before.md', { encoding: 'utf8' });
var after = fs.readFileSync(__dirname + '/examples/markdown-empty-badge-after.md', { encoding: 'utf8' });
var result = badger.addBadge(before, 'md', imageUrl, linkUrl, altText);
assert.equal(result, after);
});
it('inserts into markdown that has inline badge', function() {
var before = fs.readFileSync(__dirname + '/examples/markdown-hasbadge-inline-before.md', { encoding: 'utf8' });
var after = fs.readFileSync(__dirname + '/examples/markdown-hasbadge-inline-after.md', { encoding: 'utf8' });
var result = badger.addBadge(before, 'md', imageUrl, linkUrl, altText);
assert.equal(result, after);
});
it('inserts into markdown that content follows the title without empty line', function() {
var before = fs.readFileSync(__dirname + '/examples/markdown-tense-title-before.md', { encoding: 'utf8' });
var after = fs.readFileSync(__dirname + '/examples/markdown-tense-title-after.md', { encoding: 'utf8' });
var result = badger.addBadge(before, 'md', imageUrl, linkUrl, altText);
assert.equal(result, after);
});
it('inserts into textile', function() {
var before = fs.readFileSync(__dirname + '/examples/textile-before.textile', { encoding: 'utf8' });
var after = fs.readFileSync(__dirname + '/examples/textile-after.textile', { encoding: 'utf8' });
var result = badger.addBadge(before, 'textile', imageUrl, linkUrl, altText);
assert.equal(result, after);
});
it('inserts into rdoc', function() {
var before = fs.readFileSync(__dirname + '/examples/rdoc-before.rdoc', { encoding: 'utf8' });
var after = fs.readFileSync(__dirname + '/examples/rdoc-after.rdoc', { encoding: 'utf8' });
var result = badger.addBadge(before, 'rdoc', imageUrl, linkUrl, altText);
assert.equal(result, after);
});
it('inserts into orgmode', function() {
var before = fs.readFileSync(__dirname + '/examples/orgmode-before.org', { encoding: 'utf8' });
var after = fs.readFileSync(__dirname + '/examples/orgmode-after.org', { encoding: 'utf8' });
var result = badger.addBadge(before, 'org', imageUrl, linkUrl, altText);
assert.equal(result, after);
});
it('inserts into mediawiki', function() {
var before = fs.readFileSync(__dirname + '/examples/mediawiki-before.mediawiki', { encoding: 'utf8' });
var after = fs.readFileSync(__dirname + '/examples/mediawiki-after.mediawiki', { encoding: 'utf8' });
var result = badger.addBadge(before, 'mediawiki', imageUrl, linkUrl, altText);
assert.equal(result, after);
});
it('inserts into asciidoc', function() {
var before = fs.readFileSync(__dirname + '/examples/asciidoc-before.asciidoc', { encoding: 'utf8' });
var after = fs.readFileSync(__dirname + '/examples/asciidoc-after.asciidoc', { encoding: 'utf8' });
var result = badger.addBadge(before, 'asciidoc', imageUrl, linkUrl, altText);
assert.equal(result, after);
});
it('inserts into pod', function() {
var before = fs.readFileSync(__dirname + '/examples/pod-before.pod', { encoding: 'utf8' });
var after = fs.readFileSync(__dirname + '/examples/pod-after.pod', { encoding: 'utf8' });
var result = badger.addBadge(before, 'pod', imageUrl, linkUrl, altText);
assert.equal(result, after);
});
it('inserts into plaintext', function() {
var before = fs.readFileSync(__dirname + '/examples/plaintext-before.txt', { encoding: 'utf8' });
var after = fs.readFileSync(__dirname + '/examples/plaintext-after.txt', { encoding: 'utf8' });
var result = badger.addBadge(before, 'txt', imageUrl, linkUrl, altText);
assert.equal(result, after);
});
it('inserts into unsupported filetypes', function() {
var before = fs.readFileSync(__dirname + '/examples/plaintext-before.txt', { encoding: 'utf8' });
var after = fs.readFileSync(__dirname + '/examples/plaintext-after.txt', { encoding: 'utf8' });
var result = badger.addBadge(before, null, imageUrl, linkUrl, altText);
assert.equal(result, after);
});
it('inserts into empty files', function () {
var before = fs.readFileSync(__dirname + '/examples/empty-before.md', { encoding: 'utf8' });
var after = fs.readFileSync(__dirname + '/examples/empty-after.md', { encoding: 'utf8' });
var result = badger.addBadge(before, 'md', imageUrl, linkUrl, altText);
assert.equal(result, after)
})
});