leetcode-cli
Version:
A cli tool to enjoy leetcode!
92 lines (78 loc) • 3.22 kB
JavaScript
const assert = require('chai').assert;
const rewire = require('rewire');
// refer to https://en.wikipedia.org/wiki/ANSI_escape_code
describe('chalk', function() {
let chalk;
beforeEach(function() {
chalk = rewire('../lib/chalk');
chalk.enabled = true;
chalk.use256 = true;
chalk.use16m = false;
});
it('should ok w/ 256 colors', function() {
chalk.init();
chalk.setTheme('default');
assert.equal(chalk.black(' '), '\u001b[38;5;16m \u001b[39m');
assert.equal(chalk.red(' '), '\u001b[38;5;196m \u001b[39m');
assert.equal(chalk.green(' '), '\u001b[38;5;46m \u001b[39m');
assert.equal(chalk.yellow(' '), '\u001b[38;5;226m \u001b[39m');
assert.equal(chalk.blue(' '), '\u001b[38;5;21m \u001b[39m');
assert.equal(chalk.magenta(' '), '\u001b[38;5;201m \u001b[39m');
assert.equal(chalk.cyan(' '), '\u001b[38;5;51m \u001b[39m');
assert.equal(chalk.white(' '), '\u001b[38;5;231m \u001b[39m');
assert.equal(chalk.bold(' '), '\u001b[1m \u001b[22m');
assert.equal(chalk.dim(' '), '\u001b[2m \u001b[22m');
assert.equal(chalk.italic(' '), '\u001b[3m \u001b[23m');
assert.equal(chalk.inverse(' '), '\u001b[7m \u001b[27m');
assert.equal(chalk.strikethrough(' '), '\u001b[9m \u001b[29m');
assert.equal(chalk.underline(' '), '\u001b[4m \u001b[24m');
});
it('should ok w/ 8 colors', function() {
chalk.use256 = false;
chalk.init();
chalk.setTheme('default');
assert.equal(chalk.black(' '), '\u001b[30m \u001b[39m');
assert.equal(chalk.red(' '), '\u001b[91m \u001b[39m');
assert.equal(chalk.green(' '), '\u001b[92m \u001b[39m');
assert.equal(chalk.yellow(' '), '\u001b[93m \u001b[39m');
assert.equal(chalk.blue(' '), '\u001b[94m \u001b[39m');
assert.equal(chalk.magenta(' '), '\u001b[95m \u001b[39m');
assert.equal(chalk.cyan(' '), '\u001b[96m \u001b[39m');
assert.equal(chalk.white(' '), '\u001b[97m \u001b[39m');
});
it('should ok w/o colors', function() {
chalk.enabled = false;
chalk.init();
chalk.setTheme('default');
assert.equal(chalk.black(' '), ' ');
assert.equal(chalk.red(' '), ' ');
assert.equal(chalk.green(' '), ' ');
assert.equal(chalk.yellow(' '), ' ');
assert.equal(chalk.blue(' '), ' ');
assert.equal(chalk.magenta(' '), ' ');
assert.equal(chalk.cyan(' '), ' ');
assert.equal(chalk.white(' '), ' ');
});
it('should sprint w/ 256 colors ok', function() {
chalk.init();
chalk.setTheme('default');
assert.equal(chalk.sprint(' ', '#00ff00'), '\u001b[38;5;46m \u001b[39m');
});
it('should sprint w/ 8 colors ok', function() {
chalk.use256 = false;
chalk.init();
chalk.setTheme('default');
assert.equal(chalk.sprint(' ', '#00ff00'), '\u001b[92m \u001b[39m');
});
it('should set theme ok', function() {
chalk.init();
chalk.setTheme('dark');
assert.equal(chalk.sprint(' ', '#009900'), chalk.green(' '));
});
it('should set unknown theme ok', function() {
chalk.init();
chalk.setTheme('unknown');
assert.equal(chalk.sprint(' ', '#00ff00'), chalk.green(' '));
});
});
;