A simple command-line tool for creating a local instance of any CodeFights task.
Installation via npm
:
npm install code-fights-local -g
This will install code-fights-local
globally so that it may be run from the command line.
Usage: code-fights-local [options] [URL]
Options:
-h, --help output usage information
-V, --version output the version number
-s, --show shows the browser
-i, --incognito turns off the browser state persistance
-t, --typescript creates a typescript project for the task
-c, --cpp creates a C++ project for the task
-j, --java creates a Java project for the task
Create a local instance of a CodeFights task by invoking the code-fights-local
script and pass in the URL of the task.
Invoking code-fights-local
for the first arcade task, which is the wordLadder
task.
code-fights-local -s https://codefights.com/interview/EDaACHNYHyH6qQFAL
The task will create a folder named ./tasks/test/wordLadder
in the same directory it was invoked. Note that this example is invoked with the -s
option, which specifies that the browser should be shown while the application executes (useful if you want to see what it does).
The folder structure for each task looks like this:
/tasks/package.json
/tasks/test/taskName
/tasks/test/taskName/index.js
/tasks/test/taskName/README.md
/tasks/test/taskName/taskNameTest.js
Where taskName
is the name of the task which was downloaded. Back to our wordLadder
example:
index.js
contains task function. It is the file where you will write your code.
taskNameTest.js
contains the tests and is the main entry point. It uses mocha to generate the tests. Each test is invoked in a lambda-local context in order to simulate the test environment of CodeFights.
/tasks/package.json
/tasks/test/wordLadder
/tasks/test/wordLadder/index.js
/tasks/test/wordLadder/README.md
/tasks/test/wordLadder/wordLadderTest.js
Running the CodeFights task locally is pretty straightforward from here on. All you have to do is navigate to the /tasks
directory and execute the test script:
cd /tasks
npm install
npm run test
Don't forget to call npm install, so all of the node modules are installed prior to running the test script.
Please check the project page for more info on pending features and improvements: https://github.com/kgantchev/code-fights-local/projects/1