TheOdinProject / javascript-exercises

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

What happens if we pass function without first argument as array in "removeFromArray" excersise?

dainiuxt opened this issue · comments

I tried it and it threw an error. For error handling, I added check (!array.isArray(arg[0]), told the function what to do in such situation (I simply returned an empty array) and one additional test

 it('check how it goes when no array passed into', function() {
   expect(removeFromArray("1", 3)).toEqual([]);
 });

passed.

This question is a bit unclear. Are you asking if the test should pass in this case when you return an empty array? Or are you asking a hypothetical? If we aren't testing for it, then you can implement this functionality if you want to on your own, but otherwise as you found it will throw an error.

If there isn't an issue with the exercise itself, or you aren't suggesting we add this test case, I will be closing this issue. Otherwise feel free to expand upon what you meant.

@twalton83 , I implemented an error check and added a test to pass. Maybe I can share my solution and test for more clarity (I did tests on my pc only and tested with downloaded Jasmine version, because I can't install any soft on a machine I'm currently using).

My solution:

const removeFromArray = function(...args) {
	let array;
	if (!Array.isArray(args[0])) {
		array = [];
	} else {
		array = args[0];
	}
	const newArray = [];
	array.forEach((item) => {
		if (!args.includes(item)) {
			newArray.push(item);
		}
	});
	return newArray;	
}

and a test added to check it:

 it('check how it goes when no array passed into', function() {
   expect(removeFromArray("1", 3)).toEqual([]);
 });

I hope now it is more clear what I would like to say.

I see, but this isn’t the forum to share solutions. I’m glad you were empowered to extend our tests and the solution.

As this doesn’t appear to be an issue with the exercise itself, this will remain closed, but I encourage you to join the Discord server if you’d like to discuss your solutions further. Issues are more for “there’s a problem with this project”, not solution discussion.

Sorry if I posted this in the wrong place. I just trying to absorb new things and need confirmation that I'm going the right way. Maybe it would be better to post this in corresponding discord channel or make a pull request. Thanks for your patience.

Pull requests are to make changes to a repository, so that's not really appropriate either :)

I would definitely just discuss this on the Discord channel, but if your tests all pass it's fine. We didn't really intend for you to continue to make your own tests and extend the functionality outside of what was being asked. The tests were specifically structured that way for a reason and this is introductory, the spec is pretty simplistic for that reason.

The curriculum also revisits testing later on, if that's something you're interested in.

Noted.