New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

tst

Package Overview
Dependencies
Maintainers
2
Versions
73
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

tst - npm Package Compare versions

Comparing version 1.0.5 to 1.0.6

81

index.js

@@ -15,2 +15,3 @@ var chalk = require('chalk');

/**

@@ -20,2 +21,3 @@ * Main test function

function test (message, testFunction) {
//if run in exclusive mode - allow only `test.only` calls
if (test.ONLY) return test;

@@ -31,3 +33,4 @@

indent: tests.length,
parent: tests[tests.length - 1]
parent: tests[tests.length - 1],
status: null
};

@@ -41,6 +44,2 @@

//append current test to the chain
tests.push(testObj);
//handle args

@@ -50,3 +49,5 @@ if (!testFunction) {

if (typeof message === 'string') {
end(testObj);
testObj.status = 'skip';
testObj.promise = Promise.resolve();
printFirstLevel(testObj);
return test;

@@ -64,25 +65,37 @@ }

//save test to the chain
tests.push(testObj);
//exec test
try {
testObj.time = now();
testFunction.call(testObj);
testObj.time = now() - testObj.time;
var isAsync = testFunction.length;
//update status
testObj.success = true;
} catch (e) {
//set parents status to error happened in nested test
if (tests.length) {
for (var i = tests.length; i--;) {
tests[i].error = true;
//exec sync test
if (!isAsync) {
try {
testObj.time = now();
testFunction.call(testObj);
testObj.time = now() - testObj.time;
if (!testObj.status) testObj.status = 'success';
} catch (e) {
//set parents status to error happened in nested test
var parent = testObj.parent;
while (parent) {
parent.status = 'warning';
parent = parent.parent;
}
//update test status
testObj.status = 'error';
testObj.error = e;
}
//update test status
testObj.error = e;
printFirstLevel(testObj);
testObj.promise = Promise.resolve();
}
end(testObj);
//remove test from the chain
tests.pop();
return test;

@@ -92,12 +105,2 @@ }

//test ender - prints logs, if needed
function end (testObj) {
tests.pop();
//if first level finished - log resolved tests
if (!tests.length) {
print(testObj);
}
}
//return indentation of a number

@@ -112,3 +115,8 @@ function indent (number) {

//print only 1st level guys
function printFirstLevel (test) {
if (!test.parent) print(test);
}
//universal printer dependent on resolved test

@@ -118,12 +126,12 @@ function print (test) {

if (test.error instanceof Error) {
if (test.status === 'error') {
printError(test);
}
else if (test.error) {
else if (test.status === 'warning') {
printWarn(test, single);
}
else if (test.success) {
else if (test.status === 'success') {
printSuccess(test, single);
}
else {
else if (test.status === 'skip') {
printSkip(test, single);

@@ -141,2 +149,3 @@ }

//print pure red error

@@ -147,3 +156,3 @@ function printError (test) {

console.group('%c× ' + test.title, 'color: red; font-weight: normal');
if (test.error && test.error !== true) {
if (test.error) {
console.error(test.error);

@@ -150,0 +159,0 @@ }

{
"name": "tst",
"version": "1.0.5",
"version": "1.0.6",
"description": "Minimalistic test runner for node/browser",

@@ -5,0 +5,0 @@ "main": "index.js",

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc