Skip to content
Open
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
58 changes: 58 additions & 0 deletions .README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
![CF](https://camo.githubusercontent.com/70edab54bba80edb7493cad3135e9606781cbb6b/687474703a2f2f692e696d6775722e636f6d2f377635415363382e706e67) 01: Node Ecosystem
===

## Submission Instructions
* work in a fork of this repository
* work in a branch on your fork
* write all of your code in a directory named `lab-` + `<your name>` **e.g.** `lab-susan`
* submit a pull request to this repository
* submit a link to your pull request on canvas
* submit a question, observation, and how long you spent on canvas

## Resources
* [node assert docs](https://nodejs.org/dist/latest-v4.x/docs/api/assert.html)
* [mocha docs](http://mochajs.org/#getting-started)

## Requirements

#### Configuration
<!-- list of files, configurations, tools, etc that are required -->
* include the following:
* **README.md** - contains documentation about your lab
* **.gitignore** - contains a robust `.gitignore` file
* **.eslintrc** - contains the provided `.eslintrc` file
* **.eslintignore** - contains the provided `.eslintignore` file
* **lib/** - should contain your modules
* **test/** - should contain your unit tests

#### Feature Tasks
* create a node.js module (`greet.js`) that exports a single function
* the `greet` function should have a single parameter that should expect a string as it's input
* the `greet` function should return the input name, concatenated with "hello <name>"
* the `greet` function should return `null` if the input is not a string
* create a node.js module named `arithmetic.js`
* this module should have `add` and `sub` methods
* the `add` method should contain 2 parameters
* these parameters should be numbers and the method should return the sum of the 2 numbers
* the `sub` method should contain 2 parameters
* these parameters should be numbers and the method should return the first number minus the second number
* decide on the expected behavior for non-number inputs

#### Testing
* write a test the expects the greet module to return "hello world!"
* this should happen when invoked with "world!" as a parameter
* write a test for the `add` and `subtract` methods on the arithmetic module
* this should ensure that your functions work with number inputs

#### Documentation
* write a description of your project (this should be in your `README.md` file)

###### BONUS 1pt
* write a test that expects the greet module to return null when you use non string values
* write a test that ensures the functions work as expected with non number inputs

## Rubric
* 2pts configuration
* 3pts feature tasks
* 3pts tests
* 2pts documentation
5 changes: 5 additions & 0 deletions .eslintignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
**/node_modules/*
**/vendor/*
**/*.min.js
**/coverage/*
**/build/*
21 changes: 21 additions & 0 deletions .eslintrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{
"rules": {
"no-console": "off",
"indent": [ "error", 2 ],
"quotes": [ "error", "single" ],
"semi": ["error", "always"],
"linebreak-style": [ "error", "unix" ]
},
"env": {
"es6": true,
"node": true,
"mocha": true,
"jasmine": true
},
"ecmaFeatures": {
"modules": true,
"experimentalObjectRestSpread": true,
"impliedStrict": true
},
"extends": "eslint:recommended"
}
136 changes: 136 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,136 @@
# Created by https://www.gitignore.io/api/osx,vim,node,macos,windows

### macOS ###
*.DS_Store
.AppleDouble
.LSOverride

# Icon must end with two \r
Icon

# Thumbnails
._*

# Files that might appear in the root of a volume
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
.com.apple.timemachine.donotpresent

# Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk

### Node ###
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*

# Runtime data
pids
*.pid
*.seed
*.pid.lock

# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov

# Coverage directory used by tools like istanbul
coverage

# nyc test coverage
.nyc_output

# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
.grunt

# Bower dependency directory (https://bower.io/)
bower_components

# node-waf configuration
.lock-wscript

# Compiled binary addons (http://nodejs.org/api/addons.html)
build/Release

# Dependency directories
node_modules/
jspm_packages/

# Typescript v1 declaration files
typings/

# Optional npm cache directory
.npm

# Optional eslint cache
.eslintcache

# Optional REPL history
.node_repl_history

# Output of 'npm pack'
*.tgz

# Yarn Integrity file
.yarn-integrity

# dotenv environment variables file
.env


### OSX ###

# Icon must end with two \r

# Thumbnails

# Files that might appear in the root of a volume

# Directories potentially created on remote AFP share

### Vim ###
# swap
[._]*.s[a-v][a-z]
[._]*.sw[a-p]
[._]s[a-v][a-z]
[._]sw[a-p]
# session
Session.vim
# temporary
.netrwhist
*~
# auto-generated tag files
tags

### Windows ###
# Windows thumbnail cache files
Thumbs.db
ehthumbs.db
ehthumbs_vista.db

# Folder config file
Desktop.ini

# Recycle Bin used on file shares
$RECYCLE.BIN/

# Windows Installer files
*.cab
*.msi
*.msm
*.msp

# Windows shortcuts
*.lnk

# End of https://www.gitignore.io/api/osx,vim,node,macos,windows
62 changes: 6 additions & 56 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,58 +1,8 @@
![CF](https://camo.githubusercontent.com/70edab54bba80edb7493cad3135e9606781cbb6b/687474703a2f2f692e696d6775722e636f6d2f377635415363382e706e67) 01: Node Ecosystem
===
## Lab-John_Scarrow Day #1
### This app takes 3 inputs
-Your name to input so you can have it ne concated with hello.
-One number to add with the other users number to be added together.
-The other number to add with the other users number to be added together.

## Submission Instructions
* work in a fork of this repository
* work in a branch on your fork
* write all of your code in a directory named `lab-` + `<your name>` **e.g.** `lab-susan`
* submit a pull request to this repository
* submit a link to your pull request on canvas
* submit a question, observation, and how long you spent on canvas

## Resources
* [node assert docs](https://nodejs.org/dist/latest-v4.x/docs/api/assert.html)
* [mocha docs](http://mochajs.org/#getting-started)

## Requirements

#### Configuration
<!-- list of files, configurations, tools, etc that are required -->
* include the following:
* **README.md** - contains documentation about your lab
* **.gitignore** - contains a robust `.gitignore` file
* **.eslintrc** - contains the provided `.eslintrc` file
* **.eslintignore** - contains the provided `.eslintignore` file
* **lib/** - should contain your modules
* **test/** - should contain your unit tests

#### Feature Tasks
* create a node.js module (`greet.js`) that exports a single function
* the `greet` function should have a single parameter that should expect a string as it's input
* the `greet` function should return the input name, concatenated with "hello <name>"
* the `greet` function should return `null` if the input is not a string
* create a node.js module named `arithmetic.js`
* this module should have `add` and `sub` methods
* the `add` method should contain 2 parameters
* these parameters should be numbers and the method should return the sum of the 2 numbers
* the `sub` method should contain 2 parameters
* these parameters should be numbers and the method should return the first number minus the second number
* decide on the expected behavior for non-number inputs

#### Testing
* write a test the expects the greet module to return "hello world!"
* this should happen when invoked with "world!" as a parameter
* write a test for the `add` and `subtract` methods on the arithmetic module
* this should ensure that your functions work with number inputs

#### Documentation
* write a description of your project (this should be in your `README.md` file)

###### BONUS 1pt
* write a test that expects the greet module to return null when you use non string values
* write a test that ensures the functions work as expected with non number inputs

## Rubric
* 2pts configuration
* 3pts feature tasks
* 3pts tests
* 2pts documentation
#### This application also has a test to rmake sure you are entering a valid string and numbers into the input variables.
7 changes: 7 additions & 0 deletions index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
'use strict';

const greet = require('./lib/greet.js');
const arithmetic = require('./lib/arithmetic.js');

greet.helloUser('John');
arithmetic.addition(3,4);
7 changes: 7 additions & 0 deletions lib/arithmetic.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
'use strict';

module.exports = exports = {};

exports.addition = function (a,b){
return (a + b);
};
7 changes: 7 additions & 0 deletions lib/greet.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
'use strict';

module.exports = exports = {};

exports.helloUser = function(name){
return `hello ${name}`;
};
14 changes: 14 additions & 0 deletions test/arithmetic-test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
'use strict';

const assert = require('assert');
const arithmetic = require('../lib/arithmetic.js');

describe('Greet.js', function () {
describe('#addition', function () {
var a = 3;
var b = 7;
it(`should return (${a} + ${b}) = ${a + b}`, function () {
assert.ok(arithmetic.addition(a, b) === ((a*1) + (b*1)));
});
});
});
18 changes: 18 additions & 0 deletions test/greet-test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
'use strict';

const assert = require('assert');
const greet = require('../lib/greet.js');

describe('Greet.js', function(){
describe('#helloUser', function(){
// testing name
var name = 'john';
var hello = greet.helloUser(name);
it(`"${!!name}" should return hello world`, function(){
assert.notStrictEqual(hello, 'hello ');
});
it('Returned null', function(){
assert.equal(name, false);
});
});
});