Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
78 changes: 73 additions & 5 deletions mythical-creatures/exercises/dragon.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,76 @@


module.exports = {
// createDragon,
// greetRider,
// eat,
// findFireBreathers
}
createDragon,
greetRider,
eat,
findFireBreathers
}

// goal: write a function that creates an object of dragons with name, rider, and temperment

// input: three parameters: name, rider, temperment
// output: object

function createDragon(name, rider, temperment) {
var dragon = {
name: name,
rider: rider,
temperment: temperment,
timesEaten: 0,
hungry: true

}

return dragon;
};

// goal: write function to greet rider of dragon

// input: dragon object
// output: 'Hi, <rider>!'

// steps:
// use dot notation to access rider key-value pair
// interpolate rider into greeting

function greetRider(dragon) {
var rider = dragon.rider;
return `Hi, ${rider}!`;
};

// write function that takes in a dragon object and returns + 1 to timesEaten key-value pair and also returns true or false in hungry key value pair

// input: dragon object
// output: timesEaten++ conditional to check for number of times eaten < 3

function eat(dragon) {
dragon.timesEaten++;
if (dragon.timesEaten === 3) {
dragon.hungry = false;
}
return dragon;
};


// write a function that checks an array of objects for aggressive temperment and returns those dragons

// input: array of dragon objects
// output: dragons with aggressive temperment

// steps:
// write variable for new dragon array
// iterate through each element in the array of dragons
// access the temperment of each dragon
// if temperment === aggressive, push that dragon to new array
// return new array of dragons

function findFireBreathers(dragons) {
var aggressiveDragons = [];
for (var i = 0; i < dragons.length; i++) {
if (dragons[i].temperment === 'aggressive') {
aggressiveDragons.push(dragons[i]);
}
}
return aggressiveDragons;
};
22 changes: 11 additions & 11 deletions mythical-creatures/test/dragon-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,41 +3,41 @@ var { createDragon, greetRider, eat, findFireBreathers} = require('../exercises/

describe('Dragon', function() {

it.skip('should be able to create a dragon with a name', function() {
it('should be able to create a dragon with a name', function() {
var dragon = createDragon('Jeff');

assert.equal(dragon.name, 'Jeff');
});

it.skip('should be able to have a different name', function() {
it('should be able to have a different name', function() {
var dragon = createDragon('Louisa');

assert.equal(dragon.name, 'Louisa');
});

it.skip('should have a rider', function() {
it('should have a rider', function() {
var dragon = createDragon('Saphira', 'Eragon');

assert.equal(dragon.name, 'Saphira');
assert.equal(dragon.rider, 'Eragon');
});

it.skip('should be able to have a different rider', function() {
it('should be able to have a different rider', function() {
var dragon = createDragon('Elliot', 'Pete');

assert.equal(dragon.name, 'Elliot');
assert.equal(dragon.rider, 'Pete');
});

it.skip('should have a temperment', function() {
it('should have a temperment', function() {
var dragon = createDragon('Saphira', 'Eragon', 'gentle');

assert.equal(dragon.name, 'Saphira');
assert.equal(dragon.rider, 'Eragon');
assert.equal(dragon.temperment, 'gentle');
});

it.skip('should be able to have different temperments', function() {
it('should be able to have different temperments', function() {
var dragon1 = createDragon('Gray', 'Marley', 'aggressive');
var dragon2 = createDragon('Sky', 'Susie', 'gentle');

Expand All @@ -51,7 +51,7 @@ describe('Dragon', function() {
assert.equal(dragon2.temperment, 'gentle');
});

it.skip('should greet their rider', function() {
it('should greet their rider', function() {
var dragon1 = createDragon('Gray', 'Marley', 'aggressive');
var dragon2 = createDragon('Sky', 'Susie', 'gentle');

Expand All @@ -62,19 +62,19 @@ describe('Dragon', function() {
assert.equal(greeting2, 'Hi, Susie!');
});

it.skip('should start off having eaten 0 times', function() {
it('should start off having eaten 0 times', function() {
var dragon = createDragon('Mushu', 'Mulan', 'aggressive');

assert.equal(dragon.timesEaten, 0);
});

it.skip('should start off being hungry', function() {
it('should start off being hungry', function() {
var dragon = createDragon('Mushu', 'Mulan', 'aggressive');

assert.equal(dragon.hungry, true);
});

it.skip('should be full after eating 3 times', function() {
it('should be full after eating 3 times', function() {
var dragon = createDragon('Lady Vox', 'Emily', 'gentle');

var fedDragon = eat(dragon);
Expand All @@ -94,7 +94,7 @@ describe('Dragon', function() {
});

//Spicy:
it.skip('should be a fireBreather if aggressive in temperment', function() {
it('should be a fireBreather if aggressive in temperment', function() {
var dragon1 = createDragon('Gray', 'Marley', 'aggressive');
var dragon2 = createDragon('Sky', 'Susie', 'gentle');
var dragon3 = createDragon('Mushu', 'Mulan', 'aggressive');
Expand Down
Loading