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

@jeetiss/callbag-marble-tester

Package Overview
Dependencies
Maintainers
1
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@jeetiss/callbag-marble-tester - npm Package Compare versions

Comparing version 0.0.4 to 0.1.0

262

dist/callbag-marble-tester.es.js

@@ -1,4 +0,2 @@

var toMarble = function toMarble(values) {
return values.join('-');
};
var FRAME_SIZE = 10;

@@ -13,23 +11,137 @@ var isDefined = function isDefined(value) {

var DIFFERENT = 0;
var NOT_COMPLITE = 1;
var EQUAL = 2;
function _extends() {
_extends = Object.assign || function (target) {
for (var i = 1; i < arguments.length; i++) {
var source = arguments[i];
var compare = function compare(expected, received, complete) {
if (complete && expected.length !== received.length) return DIFFERENT;
var length = received.length;
for (var key in source) {
if (Object.prototype.hasOwnProperty.call(source, key)) {
target[key] = source[key];
}
}
}
for (var i = 0; i < length; i++) {
if (expected[i] !== received[i]) {
return DIFFERENT;
return target;
};
return _extends.apply(this, arguments);
}
var defaultCreators = {
end: function end() {
return function (sink) {
return sink(2);
};
},
error: function error(_error) {
return function (sink) {
return sink(2, isDefined(_error) ? _error : 'error');
};
},
next: function next(value) {
return function (sink) {
return sink(1, value);
};
}
};
var parse = function parse(marbles, values, error, userCreators) {
if (values === void 0) {
values = {};
}
var creators = _extends({}, defaultCreators, userCreators);
var fragments = marbles.trim().split('');
var frameIndex = 0;
var frames = new Map();
var inGroop = false;
var groopBuffer = [];
var nextFrame = function nextFrame() {
return frameIndex += 1;
};
var set = function set(value) {
frames.set(frameIndex, value);
nextFrame();
};
while (fragments.length !== 0) {
var _fragments = fragments,
head = _fragments[0],
teil = _fragments.slice(1);
fragments = teil;
switch (head) {
case '-':
nextFrame();
continue;
case '|':
inGroop ? groopBuffer.push(creators.end()) : set([creators.end()]);
continue;
case 'x':
inGroop ? groopBuffer.push(creators.error(error)) : set([creators.error(error)]);
continue;
case '(':
inGroop = true;
continue;
case ')':
set(groopBuffer);
inGroop = false;
groopBuffer = [];
continue;
default:
inGroop ? groopBuffer.push(creators.next(pick(values, head))) : set([creators.next(pick(values, head))]);
}
}
return expected.length === received.length ? EQUAL : NOT_COMPLITE;
return {
frames: frames,
size: frameIndex
};
};
var eventNames = 'abcdefghijklmnopqrstuvwyzABCDEFGHIJKLMNOPQRSTUVWYZ';
var create = function create(_ref) {
var frames = _ref.frames,
size = _ref.size;
var marbles = '';
var events = new Map();
var next = 0;
compare.DIFFERENT = DIFFERENT;
compare.NOT_COMPLITE = NOT_COMPLITE;
compare.EQUAL = EQUAL;
var getName = function getName(value) {
if (events.has(value)) {
return events.get(value);
} else {
var event = eventNames[next++];
events.set(value, event);
return event;
}
};
var sink = function sink(t, d) {
if (t === 1) return getName(d);
if (t === 2 && !d) return '|';
if (t === 2 && d) return 'x';
};
for (var i = 0; i < size; ++i) {
if (frames.has(i)) {
var frame = frames.get(i).map(function (creator) {
return creator(sink);
}).join('');
marbles += frame.length > 1 ? "(" + frame + ")" : frame;
} else {
marbles += '-';
}
}
return marbles;
};
var listenable = function listenable(marble, values) {

@@ -42,23 +154,18 @@ if (values === void 0) {

if (start !== 0) return;
var breakpoints = marble.split('-');
var unsubscribed = false;
var id = null;
var emitFirst = function emitFirst(breakpoints) {
if (unsubscribed) return;
var head = breakpoints[0],
teil = breakpoints.slice(1);
var _parse = parse(marble, values),
frames = _parse.frames,
size = _parse.size;
if (head === '|') {
sink(2);
} else if (head === 'x') {
sink(2, {
error: 'error!'
var timeoutId = null;
var emit = function emit(frame) {
if (frames.has(frame)) {
frames.get(frame).forEach(function (emitter) {
return emitter(sink);
});
} else if (head !== '') {
sink(1, pick(values, head));
}
if (teil.length > 0) {
id = setTimeout(emitFirst, 1, teil);
if (frame < size) {
timeoutId = setTimeout(emit, FRAME_SIZE, frame + 1);
}

@@ -69,7 +176,6 @@ };

if (t === 2) {
unsubscribed = true;
id !== null && clearTimeout(id);
timeoutId !== null && clearTimeout(timeoutId);
}
});
emitFirst(breakpoints);
emit(0);
};

@@ -85,24 +191,12 @@ };

if (start !== 0) return;
var breakpoints = marble.split('-').filter(Boolean);
var _parse = parse(marble, values),
frames = _parse.frames,
size = _parse.size;
if (size > 1) throw new Error("pullable source can't be async");
var emitters = frames.get(0);
var index = 0;
var completed = false;
sink(0, function (t, d) {
if (completed) return;
if (t === 1) {
var next = breakpoints[index++];
if (next === '|') {
sink(2);
completed = true;
} else if (next === 'x') {
sink(2, {
error: 'error'
});
} else {
sink(1, pick(values, next));
}
} else if (t === 2) {
completed = true;
}
if (t === 1) emitters[index++](sink);
});

@@ -113,3 +207,3 @@ };

var message = function message(expected, received) {
return "\nexpected: " + toMarble(expected) + "\nreceived: " + toMarble(received) + "\n\n";
return "\nexpected: " + expected + "\nreceived: " + received + "\n\n";
};

@@ -123,7 +217,21 @@

return function (source) {
var breakpoints = marble.split('-');
var expected = breakpoints.filter(Boolean).map(pick.bind(null, values));
var received = [];
var talkback;
return new Promise(function (resolve, reject) {
var receivedFrames = new Map();
var frame = 0;
var set = function set(creator) {
if (receivedFrames.has(frame)) {
var _creators = receivedFrames.get(frame);
_creators.push(creator);
receivedFrames.set(frame, _creators);
} else {
receivedFrames.set(frame, [creator]);
}
};
var talkback;
var ended = false;
var id;
source(0, function (t, d) {

@@ -133,11 +241,33 @@ if (t === 0) {

talkback(1);
if (!id && !ended) {
id = setInterval(function () {
return frame += 1;
}, FRAME_SIZE);
}
return;
}
received.push(t === 1 ? d : '|');
var test = compare(expected, received, t === 2);
if (test === compare.EQUAL || test === compare.DIFFERENT) talkback(2);
if (test === compare.EQUAL) resolve();
if (test === compare.DIFFERENT) reject(message(expected, received));
if (t === 1) talkback(1);
if (t === 1) {
set(defaultCreators.next(pick(values, d)));
talkback(1);
}
if (t === 2) {
ended = true;
id && clearInterval(id);
d ? set(defaultCreators.error(d)) : set(defaultCreators.end());
talkback(2);
var received = create({
frames: receivedFrames,
size: frame + 1
});
if (received === marble.trim()) {
resolve();
} else {
reject(message(marble.trim(), received));
}
}
});

@@ -144,0 +274,0 @@ });

@@ -5,5 +5,3 @@ 'use strict';

var toMarble = function toMarble(values) {
return values.join('-');
};
var FRAME_SIZE = 10;

@@ -18,23 +16,137 @@ var isDefined = function isDefined(value) {

var DIFFERENT = 0;
var NOT_COMPLITE = 1;
var EQUAL = 2;
function _extends() {
_extends = Object.assign || function (target) {
for (var i = 1; i < arguments.length; i++) {
var source = arguments[i];
var compare = function compare(expected, received, complete) {
if (complete && expected.length !== received.length) return DIFFERENT;
var length = received.length;
for (var key in source) {
if (Object.prototype.hasOwnProperty.call(source, key)) {
target[key] = source[key];
}
}
}
for (var i = 0; i < length; i++) {
if (expected[i] !== received[i]) {
return DIFFERENT;
return target;
};
return _extends.apply(this, arguments);
}
var defaultCreators = {
end: function end() {
return function (sink) {
return sink(2);
};
},
error: function error(_error) {
return function (sink) {
return sink(2, isDefined(_error) ? _error : 'error');
};
},
next: function next(value) {
return function (sink) {
return sink(1, value);
};
}
};
var parse = function parse(marbles, values, error, userCreators) {
if (values === void 0) {
values = {};
}
var creators = _extends({}, defaultCreators, userCreators);
var fragments = marbles.trim().split('');
var frameIndex = 0;
var frames = new Map();
var inGroop = false;
var groopBuffer = [];
var nextFrame = function nextFrame() {
return frameIndex += 1;
};
var set = function set(value) {
frames.set(frameIndex, value);
nextFrame();
};
while (fragments.length !== 0) {
var _fragments = fragments,
head = _fragments[0],
teil = _fragments.slice(1);
fragments = teil;
switch (head) {
case '-':
nextFrame();
continue;
case '|':
inGroop ? groopBuffer.push(creators.end()) : set([creators.end()]);
continue;
case 'x':
inGroop ? groopBuffer.push(creators.error(error)) : set([creators.error(error)]);
continue;
case '(':
inGroop = true;
continue;
case ')':
set(groopBuffer);
inGroop = false;
groopBuffer = [];
continue;
default:
inGroop ? groopBuffer.push(creators.next(pick(values, head))) : set([creators.next(pick(values, head))]);
}
}
return expected.length === received.length ? EQUAL : NOT_COMPLITE;
return {
frames: frames,
size: frameIndex
};
};
var eventNames = 'abcdefghijklmnopqrstuvwyzABCDEFGHIJKLMNOPQRSTUVWYZ';
var create = function create(_ref) {
var frames = _ref.frames,
size = _ref.size;
var marbles = '';
var events = new Map();
var next = 0;
compare.DIFFERENT = DIFFERENT;
compare.NOT_COMPLITE = NOT_COMPLITE;
compare.EQUAL = EQUAL;
var getName = function getName(value) {
if (events.has(value)) {
return events.get(value);
} else {
var event = eventNames[next++];
events.set(value, event);
return event;
}
};
var sink = function sink(t, d) {
if (t === 1) return getName(d);
if (t === 2 && !d) return '|';
if (t === 2 && d) return 'x';
};
for (var i = 0; i < size; ++i) {
if (frames.has(i)) {
var frame = frames.get(i).map(function (creator) {
return creator(sink);
}).join('');
marbles += frame.length > 1 ? "(" + frame + ")" : frame;
} else {
marbles += '-';
}
}
return marbles;
};
var listenable = function listenable(marble, values) {

@@ -47,23 +159,18 @@ if (values === void 0) {

if (start !== 0) return;
var breakpoints = marble.split('-');
var unsubscribed = false;
var id = null;
var emitFirst = function emitFirst(breakpoints) {
if (unsubscribed) return;
var head = breakpoints[0],
teil = breakpoints.slice(1);
var _parse = parse(marble, values),
frames = _parse.frames,
size = _parse.size;
if (head === '|') {
sink(2);
} else if (head === 'x') {
sink(2, {
error: 'error!'
var timeoutId = null;
var emit = function emit(frame) {
if (frames.has(frame)) {
frames.get(frame).forEach(function (emitter) {
return emitter(sink);
});
} else if (head !== '') {
sink(1, pick(values, head));
}
if (teil.length > 0) {
id = setTimeout(emitFirst, 1, teil);
if (frame < size) {
timeoutId = setTimeout(emit, FRAME_SIZE, frame + 1);
}

@@ -74,7 +181,6 @@ };

if (t === 2) {
unsubscribed = true;
id !== null && clearTimeout(id);
timeoutId !== null && clearTimeout(timeoutId);
}
});
emitFirst(breakpoints);
emit(0);
};

@@ -90,24 +196,12 @@ };

if (start !== 0) return;
var breakpoints = marble.split('-').filter(Boolean);
var _parse = parse(marble, values),
frames = _parse.frames,
size = _parse.size;
if (size > 1) throw new Error("pullable source can't be async");
var emitters = frames.get(0);
var index = 0;
var completed = false;
sink(0, function (t, d) {
if (completed) return;
if (t === 1) {
var next = breakpoints[index++];
if (next === '|') {
sink(2);
completed = true;
} else if (next === 'x') {
sink(2, {
error: 'error'
});
} else {
sink(1, pick(values, next));
}
} else if (t === 2) {
completed = true;
}
if (t === 1) emitters[index++](sink);
});

@@ -118,3 +212,3 @@ };

var message = function message(expected, received) {
return "\nexpected: " + toMarble(expected) + "\nreceived: " + toMarble(received) + "\n\n";
return "\nexpected: " + expected + "\nreceived: " + received + "\n\n";
};

@@ -128,7 +222,21 @@

return function (source) {
var breakpoints = marble.split('-');
var expected = breakpoints.filter(Boolean).map(pick.bind(null, values));
var received = [];
var talkback;
return new Promise(function (resolve, reject) {
var receivedFrames = new Map();
var frame = 0;
var set = function set(creator) {
if (receivedFrames.has(frame)) {
var _creators = receivedFrames.get(frame);
_creators.push(creator);
receivedFrames.set(frame, _creators);
} else {
receivedFrames.set(frame, [creator]);
}
};
var talkback;
var ended = false;
var id;
source(0, function (t, d) {

@@ -138,11 +246,33 @@ if (t === 0) {

talkback(1);
if (!id && !ended) {
id = setInterval(function () {
return frame += 1;
}, FRAME_SIZE);
}
return;
}
received.push(t === 1 ? d : '|');
var test = compare(expected, received, t === 2);
if (test === compare.EQUAL || test === compare.DIFFERENT) talkback(2);
if (test === compare.EQUAL) resolve();
if (test === compare.DIFFERENT) reject(message(expected, received));
if (t === 1) talkback(1);
if (t === 1) {
set(defaultCreators.next(pick(values, d)));
talkback(1);
}
if (t === 2) {
ended = true;
id && clearInterval(id);
d ? set(defaultCreators.error(d)) : set(defaultCreators.end());
talkback(2);
var received = create({
frames: receivedFrames,
size: frame + 1
});
if (received === marble.trim()) {
resolve();
} else {
reject(message(marble.trim(), received));
}
}
});

@@ -149,0 +279,0 @@ });

{
"name": "@jeetiss/callbag-marble-tester",
"version": "0.0.4",
"version": "0.1.0",
"description": "👜 Callbag operators for the best tests.",

@@ -38,5 +38,6 @@ "main": "dist/callbag-marble-tester.js",

"babel-jest": "^23.6.0",
"callbag-filter": "^1.0.1",
"callbag-map": "^1.0.1",
"callbag-merge": "^3.1.0",
"callbag-pipe": "^1.1.1",
"callbag-filter": "^1.0.1",
"callbag-subscribe": "^1.4.1",

@@ -43,0 +44,0 @@ "husky": "^0.14.3",

# callbag-marble-tester
Callbag utils for testing deferent operators.
Callbag utils for testing different operators.

@@ -5,0 +5,0 @@ ## install

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