However, PRs with the fixes or proposals are welcomed!
The goal of the assignment is to learn how to work with functions in JS.
Active usage of documentation is strongly recommended!
-
Install Node.js
-
Fork this repository: https://github.com/rolling-scopes-school/core-js-functions
-
Clone your newly created repo:
https://github.com/<%your_github_username%>/core-js-functions/
-
Go to folder
core-js-functions
-
To install all dependencies use
npm install
-
Each task is usually a regular function:
/** * Returns the result of concatenation of two strings. * * @param {string} value1 * @param {string} value2 * @return {string} * * @example * 'aa', 'bb' => 'aabb' * 'aa','' => 'aa' * '', 'bb' => 'bb' */ function concatenateStrings(/* value1, value2 */) { throw new Error('Not implemented'); }
Read the task description in the comment above the function. Try to understand the idea. You can see the tests prepared if you don't understand it.
-
Write your code in
src/functions-tasks.js
.Uncomment the incoming parameters:
function concatenateStrings(/* value1, value2 */)
Remove the throwing error line from function body:
throw new Error('Not implemented');
Implement the function by any way and verify your solution by running tests until the failed test become passed (green).
-
Save the solution and run
npm test
in command line. If everything is OK you can try to resolve the next task. -
You will see the number of passing and pending tests.
Submit to rs app
- Commit and push your solutions to your fork
- Open rs app and login
- Go to submit task page
- Select your task (Core JS Functions)
- Press submit button and enjoy
- We recommend you to use nodejs of version 16. If you using any of features that does not supported by node
v16
, score won't be submitted. - Installing nodejs
v16
is optional, you can run jobs using your version and not use methods that are not in nodejsv16
. - Please be sure that each of your test in limit of 30sec.
- You will get 0 (zero) if you have any eslint's errors or warnings.
Question: I use Windows machine and have received a lot of errors like "Expected linebreaks to be 'LF' but found 'CRLF'". How to handle it?
Answer:
-
First, you need to install Gitbash properly: you need to choose option "Checkout as-is, commit as-is" in section "Configuring the line ending conversions". It'll let you download repos with line endings set "as-is" as well as commit. In other words, not to change them at all, because by default it converts them.
-
Second, install
editorconfig
plugin to your editor. For VS Code you can find it here: https://marketplace.visualstudio.com/items?itemName=EditorConfig.EditorConfigI'll let you apply some rules when you saving your files in the repo. This plugin will use config-file
.editorconfig
that you can see in the root folder. It lets you save the file with needed line endings, trim whitespaces, etc. -
Finally, you need to apply linter's autofix feature in order to fix all linebreaks that was already changed to "CLRF":
$ npm run lint -- --fix
Question: Execution of tests "hangs" on one of them and does not display the result. What to do?
Answer: Check your solution for an infinite loop, fix it, and rerun the test.
Question: The solution in the local repository succeeds and all tests are "green", but in the application some tests don't count. What to do?
Answer: Update your repository fork, update the local repository from the fork, run tests and fix your solution. After fixing, resubmit your solution for testing.
The task based on https://github.com/rolling-scopes-school/js-assignments.