Write a function that modifies a User Object (should have the fields 'name', 'address', and 'age') to update their address.,,
Requirements:
-User object has 3 fields (name, age, address)
-User can be created with 1, 2, or all 3 params (args in order above)
-User can be updated with User.update(name, age, address)
-User values can be updated individually using the following methods:
---User.updateName(name)
---User.updateAge(age)
---User.updateAddress(address)
function User (name = "", age = "", address = "") {
this.name = name
this.age = age
this.address = address
this.updateName = function(name) {this.name = name}
this.updateAge = function(age) {this.age = age}
this.updateAddress = function(address) {this.address = address}
this.update = function(name="", age="", address="") {
this.name = name
this.age = age
this.address = address
}
}
// Since Node 10, we're using Mocha.
// You can use `chai` for assertions.
const chai = require("chai");
const assert = chai.assert;
// Uncomment the following line to disable truncating failure messages for deep equals, do:
// chai.config.truncateThreshold = 0;
// Since Node 12, we no longer include assertions from our deprecated custom test framework by default.
// Uncomment the following to use the old assertions:
// const Test = require("@codewars/test-compat");
describe("Create User", function() {
it("creates a user with no params", function() {
let user = new User()
assert.equal(user.name, "")
assert.equal(user.age, "")
assert.equal(user.address, "")
});
it("creates a user with one param", function() {
let user = new User("Kayla")
assert.equal(user.name, "Kayla")
assert.equal(user.age, "")
assert.equal(user.address, "")
});
it("creates a user with two params", function() {
let user = new User("Liam", 26)
assert.equal(user.name, "Liam")
assert.equal(user.age, 26)
assert.equal(user.address, "")
});
it("creates a user with three params", function() {
let user = new User("Shane", 23, "123 Main St")
assert.equal(user.name, "Shane")
assert.equal(user.age, 23)
assert.equal(user.address, "123 Main St")
});
});
describe("Update User", function() {
it("updates user with three params", function() {
let user = new User()
assert.equal(user.name, "")
assert.equal(user.age, "")
assert.equal(user.address, "")
user.update("Alice", 22, "Cool Girl Rd")
assert.equal(user.name, "Alice")
assert.equal(user.age, 22)
assert.equal(user.address, "Cool Girl Rd")
});
it("updates user name", function() {
let user = new User()
assert.equal(user.name, "")
assert.equal(user.age, "")
assert.equal(user.address, "")
user.updateName("Amanda")
assert.equal(user.name, "Amanda")
assert.equal(user.age, "")
assert.equal(user.address, "")
});
it("updates user age", function() {
let user = new User()
assert.equal(user.name, "")
assert.equal(user.age, "")
assert.equal(user.address, "")
user.updateAge(90)
assert.equal(user.name, "")
assert.equal(user.age, 90)
assert.equal(user.address, "")
});
it("updates user address", function() {
let user = new User()
assert.equal(user.name, "")
assert.equal(user.age, "")
assert.equal(user.address, "")
user.updateAddress("York HQ")
assert.equal(user.name, "")
assert.equal(user.age, "")
assert.equal(user.address, "York HQ")
});
});