node-jest/terminal-link/test.js

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');
});