forked from FINAKON/HelpProject
1. Initial Commit - a boiler plate code and POC to realize the concept of context sensitive help 2. Frontend code written in ReactJS 3. Backend code written in Java, Spring Boot Framework 4. Frontend Start: pre-requisites : node, npm npm run dev ==> to start the frontend vite server 5. Backend Start: pre-requisites : java, mvn mvn spring-boot:run ==> to start the backend server 6. Visit http://localhost:5173/ for basic demo of help, press F1 in textboxes 7. Visit http://localhost:5173/editor and enter "admin123" to add/modify texts. Happy Coding !!! Thank you, Bhargava.
69 lines
2.3 KiB
JavaScript
69 lines
2.3 KiB
JavaScript
'use strict';
|
|
|
|
var test = require('tape');
|
|
|
|
var getProto = require('../');
|
|
|
|
test('getProto', function (t) {
|
|
t.equal(typeof getProto, 'function', 'is a function');
|
|
|
|
t.test('can get', { skip: !getProto }, function (st) {
|
|
if (getProto) { // TS doesn't understand tape's skip
|
|
var proto = { b: 2 };
|
|
st.equal(getProto(proto), Object.prototype, 'proto: returns the [[Prototype]]');
|
|
|
|
st.test('nullish value', function (s2t) {
|
|
// @ts-expect-error
|
|
s2t['throws'](function () { return getProto(undefined); }, TypeError, 'undefined is not an object');
|
|
// @ts-expect-error
|
|
s2t['throws'](function () { return getProto(null); }, TypeError, 'null is not an object');
|
|
s2t.end();
|
|
});
|
|
|
|
// @ts-expect-error
|
|
st['throws'](function () { getProto(true); }, 'throws for true');
|
|
// @ts-expect-error
|
|
st['throws'](function () { getProto(false); }, 'throws for false');
|
|
// @ts-expect-error
|
|
st['throws'](function () { getProto(42); }, 'throws for 42');
|
|
// @ts-expect-error
|
|
st['throws'](function () { getProto(NaN); }, 'throws for NaN');
|
|
// @ts-expect-error
|
|
st['throws'](function () { getProto(0); }, 'throws for +0');
|
|
// @ts-expect-error
|
|
st['throws'](function () { getProto(-0); }, 'throws for -0');
|
|
// @ts-expect-error
|
|
st['throws'](function () { getProto(Infinity); }, 'throws for ∞');
|
|
// @ts-expect-error
|
|
st['throws'](function () { getProto(-Infinity); }, 'throws for -∞');
|
|
// @ts-expect-error
|
|
st['throws'](function () { getProto(''); }, 'throws for empty string');
|
|
// @ts-expect-error
|
|
st['throws'](function () { getProto('foo'); }, 'throws for non-empty string');
|
|
st.equal(getProto(/a/g), RegExp.prototype);
|
|
st.equal(getProto(new Date()), Date.prototype);
|
|
st.equal(getProto(function () {}), Function.prototype);
|
|
st.equal(getProto([]), Array.prototype);
|
|
st.equal(getProto({}), Object.prototype);
|
|
|
|
var nullObject = { __proto__: null };
|
|
if ('toString' in nullObject) {
|
|
st.comment('no null objects in this engine');
|
|
st.equal(getProto(nullObject), Object.prototype, '"null" object has Object.prototype as [[Prototype]]');
|
|
} else {
|
|
st.equal(getProto(nullObject), null, 'null object has null [[Prototype]]');
|
|
}
|
|
}
|
|
|
|
st.end();
|
|
});
|
|
|
|
t.test('can not get', { skip: !!getProto }, function (st) {
|
|
st.equal(getProto, null);
|
|
|
|
st.end();
|
|
});
|
|
|
|
t.end();
|
|
});
|