Skip to content

Instantly share code, notes, and snippets.

@NickFoden
Created February 26, 2017 21:30
Show Gist options
  • Save NickFoden/0414b5b33b4d367e65e0943126296018 to your computer and use it in GitHub Desktop.
Save NickFoden/0414b5b33b4d367e65e0943126296018 to your computer and use it in GitHub Desktop.
JS Bin // source https://jsbin.com/mujore
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>JS Bin</title>
<script src="https://code.jquery.com/jquery-3.1.0.js"></script>
</head>
<body>
<script id="jsbin-javascript">
function makeToDos(owner, toDos) {
var newObject = {
owner : owner,
toDos : [1,2,3],
}
html(newObject);
}
function html(newObject){
console.log("test");
var str = [];
for (i = 0; i < newObject.toDos.length; i++ ){
_new = "<li>" + newObject.toDos[i] + "</li>";
str.push(_new);
console.log(_new);
}
}
/* From here down, you are not expected to
understand.... for now :)
Nothing to see here!
*/
// tests
function testIt() {
var toDos = ['get milk', 'walk dog', 'pay bills', 'eat dinner'];
var owner = 'Steve';
var myToDos = makeToDos(owner, toDos);
if (!myToDos || !myToDos instanceof Object) {
console.error('FAILURE: `makeToDos` must return an object');
return;
}
var expectedKeys = ['owner', 'toDos', 'generateHtml'];
if (
Object.keys(myToDos).length !== expectedKeys.length ||
!expectedKeys.every(function(key) {
return key in myToDos;
})
) {
console.error(
'FAILURE: expected `makeToDos` to have a `.toDos` property ' +
'whose value is an array of todo items');
return;
}
if (myToDos.owner !== owner) {
console.error(
'FAILURE: expected `makeToDos` to return an object with `.owner` '+
'set to value passed in for `owner`, in this case ' + owner);
return;
}
if (!toDos.every(function(toDo) {
return myToDos.toDos.find(function(_toDo) {
return _toDo === toDo;
})
})) {
console.error('FAILURE: makeToDos toDos property returned' + Object.values(myToDos.toDos) + '. Expected: ' + Object.values(todos));
}
var element = $(myToDos.generateHtml());
if (element.length !== 1) {
console.error(
'FAILURE: `makeToDos` must return an object with a `generateHtml` ' +
'method that returns an unordered list');
return;
}
if (!toDos.every(function(toDo) {
return element.find('li:contains("' + toDo + '")').length === 1;
})) {
console.error('FAILURE: generateHtml must return li element for every todo');
return
}
console.log('SUCCESS: `makeToDos` is working');
}
testIt();
</script>
<script id="jsbin-source-javascript" type="text/javascript">function makeToDos(owner, toDos) {
var newObject = {
owner : owner,
toDos : [1,2,3],
}
html(newObject);
}
function html(newObject){
console.log("test");
var str = [];
for (i = 0; i < newObject.toDos.length; i++ ){
_new = "<li>" + newObject.toDos[i] + "</li>";
str.push(_new);
console.log(_new);
}
}
/* From here down, you are not expected to
understand.... for now :)
Nothing to see here!
*/
// tests
function testIt() {
var toDos = ['get milk', 'walk dog', 'pay bills', 'eat dinner'];
var owner = 'Steve';
var myToDos = makeToDos(owner, toDos);
if (!myToDos || !myToDos instanceof Object) {
console.error('FAILURE: `makeToDos` must return an object');
return;
}
var expectedKeys = ['owner', 'toDos', 'generateHtml'];
if (
Object.keys(myToDos).length !== expectedKeys.length ||
!expectedKeys.every(function(key) {
return key in myToDos;
})
) {
console.error(
'FAILURE: expected `makeToDos` to have a `.toDos` property ' +
'whose value is an array of todo items');
return;
}
if (myToDos.owner !== owner) {
console.error(
'FAILURE: expected `makeToDos` to return an object with `.owner` '+
'set to value passed in for `owner`, in this case ' + owner);
return;
}
if (!toDos.every(function(toDo) {
return myToDos.toDos.find(function(_toDo) {
return _toDo === toDo;
})
})) {
console.error('FAILURE: makeToDos toDos property returned' + Object.values(myToDos.toDos) + '. Expected: ' + Object.values(todos));
}
var element = $(myToDos.generateHtml());
if (element.length !== 1) {
console.error(
'FAILURE: `makeToDos` must return an object with a `generateHtml` ' +
'method that returns an unordered list');
return;
}
if (!toDos.every(function(toDo) {
return element.find('li:contains("' + toDo + '")').length === 1;
})) {
console.error('FAILURE: generateHtml must return li element for every todo');
return
}
console.log('SUCCESS: `makeToDos` is working');
}
testIt();</script></body>
</html>
function makeToDos(owner, toDos) {
var newObject = {
owner : owner,
toDos : [1,2,3],
}
html(newObject);
}
function html(newObject){
console.log("test");
var str = [];
for (i = 0; i < newObject.toDos.length; i++ ){
_new = "<li>" + newObject.toDos[i] + "</li>";
str.push(_new);
console.log(_new);
}
}
/* From here down, you are not expected to
understand.... for now :)
Nothing to see here!
*/
// tests
function testIt() {
var toDos = ['get milk', 'walk dog', 'pay bills', 'eat dinner'];
var owner = 'Steve';
var myToDos = makeToDos(owner, toDos);
if (!myToDos || !myToDos instanceof Object) {
console.error('FAILURE: `makeToDos` must return an object');
return;
}
var expectedKeys = ['owner', 'toDos', 'generateHtml'];
if (
Object.keys(myToDos).length !== expectedKeys.length ||
!expectedKeys.every(function(key) {
return key in myToDos;
})
) {
console.error(
'FAILURE: expected `makeToDos` to have a `.toDos` property ' +
'whose value is an array of todo items');
return;
}
if (myToDos.owner !== owner) {
console.error(
'FAILURE: expected `makeToDos` to return an object with `.owner` '+
'set to value passed in for `owner`, in this case ' + owner);
return;
}
if (!toDos.every(function(toDo) {
return myToDos.toDos.find(function(_toDo) {
return _toDo === toDo;
})
})) {
console.error('FAILURE: makeToDos toDos property returned' + Object.values(myToDos.toDos) + '. Expected: ' + Object.values(todos));
}
var element = $(myToDos.generateHtml());
if (element.length !== 1) {
console.error(
'FAILURE: `makeToDos` must return an object with a `generateHtml` ' +
'method that returns an unordered list');
return;
}
if (!toDos.every(function(toDo) {
return element.find('li:contains("' + toDo + '")').length === 1;
})) {
console.error('FAILURE: generateHtml must return li element for every todo');
return
}
console.log('SUCCESS: `makeToDos` is working');
}
testIt();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment