101 lines
2.7 KiB
JavaScript
101 lines
2.7 KiB
JavaScript
import {serial as test} from 'ava';
|
|
import clearModule from 'clear-module';
|
|
|
|
test.beforeEach(() => {
|
|
clearModule.all();
|
|
});
|
|
|
|
test.afterEach(() => {
|
|
delete process.env.FORCE_HYPERLINK;
|
|
});
|
|
|
|
test('main', t => {
|
|
process.env.FORCE_HYPERLINK = 1;
|
|
const terminalLink = require('.');
|
|
|
|
const actual = terminalLink('My Website', 'https://sindresorhus.com');
|
|
console.log(actual);
|
|
t.is(actual, '\u001B]8;;https://sindresorhus.com\u0007My Website\u001B]8;;\u0007');
|
|
});
|
|
|
|
test('stderr', t => {
|
|
process.env.FORCE_HYPERLINK = 1;
|
|
const terminalLink = require('.');
|
|
|
|
const actual = terminalLink.stderr('My Website', 'https://sindresorhus.com');
|
|
console.log(actual);
|
|
t.is(actual, '\u001B]8;;https://sindresorhus.com\u0007My Website\u001B]8;;\u0007');
|
|
});
|
|
|
|
test('default fallback', t => {
|
|
process.env.FORCE_HYPERLINK = 0;
|
|
const terminalLink = require('.');
|
|
|
|
const actual = terminalLink('My Website', 'https://sindresorhus.com');
|
|
console.log(actual);
|
|
t.is(actual, 'My Website (\u200Bhttps://sindresorhus.com\u200B)');
|
|
});
|
|
|
|
test('disabled fallback', t => {
|
|
process.env.FORCE_HYPERLINK = 0;
|
|
const terminalLink = require('.');
|
|
|
|
const actual = terminalLink('My Website', 'https://sindresorhus.com', {
|
|
fallback: false
|
|
});
|
|
console.log(actual);
|
|
t.is(actual, 'My Website');
|
|
});
|
|
|
|
test('explicitly enabled fallback', t => {
|
|
process.env.FORCE_HYPERLINK = 0;
|
|
const terminalLink = require('.');
|
|
|
|
const actual = terminalLink('My Website', 'https://sindresorhus.com', {
|
|
fallback: true
|
|
});
|
|
console.log(actual);
|
|
t.is(actual, 'My Website (\u200Bhttps://sindresorhus.com\u200B)');
|
|
});
|
|
|
|
test('stderr default fallback', t => {
|
|
process.env.FORCE_HYPERLINK = 0;
|
|
const terminalLink = require('.');
|
|
|
|
const actual = terminalLink.stderr('My Website', 'https://sindresorhus.com');
|
|
console.log(actual);
|
|
t.is(actual, 'My Website (\u200Bhttps://sindresorhus.com\u200B)');
|
|
});
|
|
|
|
test('custom fallback', t => {
|
|
process.env.FORCE_HYPERLINK = 0;
|
|
const terminalLink = require('.');
|
|
|
|
const actual = terminalLink('My Website', 'https://sindresorhus.com', {
|
|
fallback: (text, url) => `${text}: ${url}`
|
|
});
|
|
console.log(actual);
|
|
t.is(actual, 'My Website: https://sindresorhus.com');
|
|
});
|
|
|
|
test('custom fallback stderr', t => {
|
|
process.env.FORCE_HYPERLINK = 0;
|
|
const terminalLink = require('.');
|
|
|
|
const actual = terminalLink.stderr('My Website', 'https://sindresorhus.com', {
|
|
fallback: (text, url) => `${text}: ${url}`
|
|
});
|
|
console.log(actual);
|
|
t.is(actual, 'My Website: https://sindresorhus.com');
|
|
});
|
|
|
|
test('isSupported', t => {
|
|
const terminalLink = require('.');
|
|
t.is(typeof terminalLink.isSupported, 'boolean');
|
|
});
|
|
|
|
test('isSupported stderr', t => {
|
|
const terminalLink = require('.');
|
|
t.is(typeof terminalLink.stderr.isSupported, 'boolean');
|
|
});
|