{"id":20111092,"url":"https://github.com/jagadeeshshetty/nightwatchjs-basic","last_synced_at":"2025-03-02T18:29:15.682Z","repository":{"id":42222684,"uuid":"162742360","full_name":"jagadeeshshetty/nightwatchjs-basic","owner":"jagadeeshshetty","description":"Will help to get started with basic setup and run the test on web browsers.","archived":false,"fork":false,"pushed_at":"2022-12-30T21:33:31.000Z","size":42915,"stargazers_count":1,"open_issues_count":6,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-02-24T20:22:00.987Z","etag":null,"topics":["javascript","mocha","nightwatch","selenium","w3c-webdriver"],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/nightwatchjs-basic","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jagadeeshshetty.png","metadata":{"files":{"readme":"README.html","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-12-21T17:44:43.000Z","updated_at":"2020-09-25T07:12:36.000Z","dependencies_parsed_at":"2023-01-31T16:46:45.726Z","dependency_job_id":null,"html_url":"https://github.com/jagadeeshshetty/nightwatchjs-basic","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jagadeeshshetty%2Fnightwatchjs-basic","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jagadeeshshetty%2Fnightwatchjs-basic/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jagadeeshshetty%2Fnightwatchjs-basic/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jagadeeshshetty%2Fnightwatchjs-basic/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jagadeeshshetty","download_url":"https://codeload.github.com/jagadeeshshetty/nightwatchjs-basic/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241551039,"owners_count":19980879,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["javascript","mocha","nightwatch","selenium","w3c-webdriver"],"created_at":"2024-11-13T18:14:30.175Z","updated_at":"2025-03-02T18:29:15.646Z","avatar_url":"https://github.com/jagadeeshshetty.png","language":"JavaScript","readme":"\u003c!DOCTYPE html\u003e\r\n\u003chtml\u003e\r\n\u003chead\u003e\r\n\u003ctitle\u003eREADME.md\u003c/title\u003e\r\n\u003cmeta http-equiv=\"Content-type\" content=\"text/html;charset=UTF-8\"\u003e\r\n\n\u003cstyle\u003e\n/* https://github.com/microsoft/vscode/blob/master/extensions/markdown-language-features/media/markdown.css */\r\n/*---------------------------------------------------------------------------------------------\r\n *  Copyright (c) Microsoft Corporation. All rights reserved.\r\n *  Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nbody {\r\n\tfont-family: var(--vscode-markdown-font-family, -apple-system, BlinkMacSystemFont, \"Segoe WPC\", \"Segoe UI\", \"Ubuntu\", \"Droid Sans\", sans-serif);\r\n\tfont-size: var(--vscode-markdown-font-size, 14px);\r\n\tpadding: 0 26px;\r\n\tline-height: var(--vscode-markdown-line-height, 22px);\r\n\tword-wrap: break-word;\r\n}\r\n\r\n#code-csp-warning {\r\n\tposition: fixed;\r\n\ttop: 0;\r\n\tright: 0;\r\n\tcolor: white;\r\n\tmargin: 16px;\r\n\ttext-align: center;\r\n\tfont-size: 12px;\r\n\tfont-family: sans-serif;\r\n\tbackground-color:#444444;\r\n\tcursor: pointer;\r\n\tpadding: 6px;\r\n\tbox-shadow: 1px 1px 1px rgba(0,0,0,.25);\r\n}\r\n\r\n#code-csp-warning:hover {\r\n\ttext-decoration: none;\r\n\tbackground-color:#007acc;\r\n\tbox-shadow: 2px 2px 2px rgba(0,0,0,.25);\r\n}\r\n\r\nbody.scrollBeyondLastLine {\r\n\tmargin-bottom: calc(100vh - 22px);\r\n}\r\n\r\nbody.showEditorSelection .code-line {\r\n\tposition: relative;\r\n}\r\n\r\nbody.showEditorSelection .code-active-line:before,\r\nbody.showEditorSelection .code-line:hover:before {\r\n\tcontent: \"\";\r\n\tdisplay: block;\r\n\tposition: absolute;\r\n\ttop: 0;\r\n\tleft: -12px;\r\n\theight: 100%;\r\n}\r\n\r\nbody.showEditorSelection li.code-active-line:before,\r\nbody.showEditorSelection li.code-line:hover:before {\r\n\tleft: -30px;\r\n}\r\n\r\n.vscode-light.showEditorSelection .code-active-line:before {\r\n\tborder-left: 3px solid rgba(0, 0, 0, 0.15);\r\n}\r\n\r\n.vscode-light.showEditorSelection .code-line:hover:before {\r\n\tborder-left: 3px solid rgba(0, 0, 0, 0.40);\r\n}\r\n\r\n.vscode-light.showEditorSelection .code-line .code-line:hover:before {\r\n\tborder-left: none;\r\n}\r\n\r\n.vscode-dark.showEditorSelection .code-active-line:before {\r\n\tborder-left: 3px solid rgba(255, 255, 255, 0.4);\r\n}\r\n\r\n.vscode-dark.showEditorSelection .code-line:hover:before {\r\n\tborder-left: 3px solid rgba(255, 255, 255, 0.60);\r\n}\r\n\r\n.vscode-dark.showEditorSelection .code-line .code-line:hover:before {\r\n\tborder-left: none;\r\n}\r\n\r\n.vscode-high-contrast.showEditorSelection .code-active-line:before {\r\n\tborder-left: 3px solid rgba(255, 160, 0, 0.7);\r\n}\r\n\r\n.vscode-high-contrast.showEditorSelection .code-line:hover:before {\r\n\tborder-left: 3px solid rgba(255, 160, 0, 1);\r\n}\r\n\r\n.vscode-high-contrast.showEditorSelection .code-line .code-line:hover:before {\r\n\tborder-left: none;\r\n}\r\n\r\nimg {\r\n\tmax-width: 100%;\r\n\tmax-height: 100%;\r\n}\r\n\r\na {\r\n\ttext-decoration: none;\r\n}\r\n\r\na:hover {\r\n\ttext-decoration: underline;\r\n}\r\n\r\na:focus,\r\ninput:focus,\r\nselect:focus,\r\ntextarea:focus {\r\n\toutline: 1px solid -webkit-focus-ring-color;\r\n\toutline-offset: -1px;\r\n}\r\n\r\nhr {\r\n\tborder: 0;\r\n\theight: 2px;\r\n\tborder-bottom: 2px solid;\r\n}\r\n\r\nh1 {\r\n\tpadding-bottom: 0.3em;\r\n\tline-height: 1.2;\r\n\tborder-bottom-width: 1px;\r\n\tborder-bottom-style: solid;\r\n}\r\n\r\nh1, h2, h3 {\r\n\tfont-weight: normal;\r\n}\r\n\r\ntable {\r\n\tborder-collapse: collapse;\r\n}\r\n\r\ntable \u003e thead \u003e tr \u003e th {\r\n\ttext-align: left;\r\n\tborder-bottom: 1px solid;\r\n}\r\n\r\ntable \u003e thead \u003e tr \u003e th,\r\ntable \u003e thead \u003e tr \u003e td,\r\ntable \u003e tbody \u003e tr \u003e th,\r\ntable \u003e tbody \u003e tr \u003e td {\r\n\tpadding: 5px 10px;\r\n}\r\n\r\ntable \u003e tbody \u003e tr + tr \u003e td {\r\n\tborder-top: 1px solid;\r\n}\r\n\r\nblockquote {\r\n\tmargin: 0 7px 0 5px;\r\n\tpadding: 0 16px 0 10px;\r\n\tborder-left-width: 5px;\r\n\tborder-left-style: solid;\r\n}\r\n\r\ncode {\r\n\tfont-family: Menlo, Monaco, Consolas, \"Droid Sans Mono\", \"Courier New\", monospace, \"Droid Sans Fallback\";\r\n\tfont-size: 1em;\r\n\tline-height: 1.357em;\r\n}\r\n\r\nbody.wordWrap pre {\r\n\twhite-space: pre-wrap;\r\n}\r\n\r\npre:not(.hljs),\r\npre.hljs code \u003e div {\r\n\tpadding: 16px;\r\n\tborder-radius: 3px;\r\n\toverflow: auto;\r\n}\r\n\r\npre code {\r\n\tcolor: var(--vscode-editor-foreground);\r\n\ttab-size: 4;\r\n}\r\n\r\n/** Theming */\r\n\r\n.vscode-light pre {\r\n\tbackground-color: rgba(220, 220, 220, 0.4);\r\n}\r\n\r\n.vscode-dark pre {\r\n\tbackground-color: rgba(10, 10, 10, 0.4);\r\n}\r\n\r\n.vscode-high-contrast pre {\r\n\tbackground-color: rgb(0, 0, 0);\r\n}\r\n\r\n.vscode-high-contrast h1 {\r\n\tborder-color: rgb(0, 0, 0);\r\n}\r\n\r\n.vscode-light table \u003e thead \u003e tr \u003e th {\r\n\tborder-color: rgba(0, 0, 0, 0.69);\r\n}\r\n\r\n.vscode-dark table \u003e thead \u003e tr \u003e th {\r\n\tborder-color: rgba(255, 255, 255, 0.69);\r\n}\r\n\r\n.vscode-light h1,\r\n.vscode-light hr,\r\n.vscode-light table \u003e tbody \u003e tr + tr \u003e td {\r\n\tborder-color: rgba(0, 0, 0, 0.18);\r\n}\r\n\r\n.vscode-dark h1,\r\n.vscode-dark hr,\r\n.vscode-dark table \u003e tbody \u003e tr + tr \u003e td {\r\n\tborder-color: rgba(255, 255, 255, 0.18);\r\n}\r\n\n\u003c/style\u003e\n\n\u003cstyle\u003e\n/* Tomorrow Theme */\r\n/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */\r\n/* Original theme - https://github.com/chriskempson/tomorrow-theme */\r\n\r\n/* Tomorrow Comment */\r\n.hljs-comment,\r\n.hljs-quote {\r\n\tcolor: #8e908c;\r\n}\r\n\r\n/* Tomorrow Red */\r\n.hljs-variable,\r\n.hljs-template-variable,\r\n.hljs-tag,\r\n.hljs-name,\r\n.hljs-selector-id,\r\n.hljs-selector-class,\r\n.hljs-regexp,\r\n.hljs-deletion {\r\n\tcolor: #c82829;\r\n}\r\n\r\n/* Tomorrow Orange */\r\n.hljs-number,\r\n.hljs-built_in,\r\n.hljs-builtin-name,\r\n.hljs-literal,\r\n.hljs-type,\r\n.hljs-params,\r\n.hljs-meta,\r\n.hljs-link {\r\n\tcolor: #f5871f;\r\n}\r\n\r\n/* Tomorrow Yellow */\r\n.hljs-attribute {\r\n\tcolor: #eab700;\r\n}\r\n\r\n/* Tomorrow Green */\r\n.hljs-string,\r\n.hljs-symbol,\r\n.hljs-bullet,\r\n.hljs-addition {\r\n\tcolor: #718c00;\r\n}\r\n\r\n/* Tomorrow Blue */\r\n.hljs-title,\r\n.hljs-section {\r\n\tcolor: #4271ae;\r\n}\r\n\r\n/* Tomorrow Purple */\r\n.hljs-keyword,\r\n.hljs-selector-tag {\r\n\tcolor: #8959a8;\r\n}\r\n\r\n.hljs {\r\n\tdisplay: block;\r\n\toverflow-x: auto;\r\n\tcolor: #4d4d4c;\r\n\tpadding: 0.5em;\r\n}\r\n\r\n.hljs-emphasis {\r\n\tfont-style: italic;\r\n}\r\n\r\n.hljs-strong {\r\n\tfont-weight: bold;\r\n}\n\u003c/style\u003e\n\n\u003cstyle\u003e\n/*\r\n * Markdown PDF CSS\r\n */\r\n\r\n body {\r\n\tfont-family: -apple-system, BlinkMacSystemFont, \"Segoe WPC\", \"Segoe UI\", \"Ubuntu\", \"Droid Sans\", sans-serif, \"Meiryo\";\r\n\tpadding: 0 12px;\r\n}\r\n\r\npre {\r\n\tbackground-color: #f8f8f8;\r\n\tborder: 1px solid #cccccc;\r\n\tborder-radius: 3px;\r\n\toverflow-x: auto;\r\n\twhite-space: pre-wrap;\r\n\toverflow-wrap: break-word;\r\n}\r\n\r\npre:not(.hljs) {\r\n\tpadding: 23px;\r\n\tline-height: 19px;\r\n}\r\n\r\nblockquote {\r\n\tbackground: rgba(127, 127, 127, 0.1);\r\n\tborder-color: rgba(0, 122, 204, 0.5);\r\n}\r\n\r\n.emoji {\r\n\theight: 1.4em;\r\n}\r\n\r\ncode {\r\n\tfont-size: 14px;\r\n\tline-height: 19px;\r\n}\r\n\r\n/* for inline code */\r\n:not(pre):not(.hljs) \u003e code {\r\n\tcolor: #C9AE75; /* Change the old color so it seems less like an error */\r\n\tfont-size: inherit;\r\n}\r\n\r\n/* Page Break : use \u003cdiv class=\"page\"/\u003e to insert page break\r\n-------------------------------------------------------- */\r\n.page {\r\n\tpage-break-after: always;\r\n}\r\n\n\u003c/style\u003e\n\r\n\u003cscript src=\"https://unpkg.com/mermaid/dist/mermaid.min.js\"\u003e\u003c/script\u003e\r\n\u003c/head\u003e\r\n\u003cbody\u003e\r\n  \u003cscript\u003e\r\n    mermaid.initialize({\r\n      startOnLoad: true,\r\n      theme: document.body.classList.contains('vscode-dark') || document.body.classList.contains('vscode-high-contrast')\r\n          ? 'dark'\r\n          : 'default'\r\n    });\r\n  \u003c/script\u003e\r\n\u003ch1 id=\"what-is-nightwatch\"\u003eWhat is Nightwatch\u003c/h1\u003e\n\u003cp\u003e\u003cimg src=\"https://img.shields.io/badge/build-success-brightgreen.svg\" alt=\"build\"\u003e\n\u003ca href=\"https://www.npmjs.com/package/nightwatch/v/1.0.19\"\u003e\u003cimg src=\"https://img.shields.io/badge/nightwach-v1.1.11-important.svg\" alt=\"npm-version\"\u003e\u003c/a\u003e\n\u003ca href=\"https://www.npmjs.com/package/nightwatch\"\u003e\u003cimg src=\"https://img.shields.io/badge/weekly downloads-155k+-brightgreen.svg?style=social\u0026amp;logo=appveyor\" alt=\"npm-nightwatch\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://www.linkedin.com/in/jagadeesh-c-2a3a9423\"\u003e\u003cimg src=\"https://img.shields.io/badge/author-Jagadeesh Shetty-success.svg\" alt=\"author-linkedin\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eNightwatch.js is an automated testing framework for web applications and websites, written in Node.js and using the \u003ca href=\"https://www.w3.org/TR/webdriver/\"\u003eW3C WebDriver\u003c/a\u003e API (formerly \u003ca href=\"https://github.com/SeleniumHQ/selenium/wiki/JsonWireProtocol\"\u003eSelenium WebDriver\u003c/a\u003e).\u003c/p\u003e\n\u003cp\u003eIt is a complete End-to-End testing solution which aims to simplify writing automated tests and setting up Continuous Integration. Nightwatch can also be used for writing Node.js unit and integration tests.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eThe name Nightwatch was inspired by the famous painting The Night Watch by Dutch artist Rembrandt van Rijn. The masterpiece is prominently displayed in the Rijksmuseum, in Amsterdam - The Netherlands.\u003c/em\u003e\u003c/p\u003e\n\u003ch1 id=\"overview-of-webdriver\"\u003eOverview of WebDriver\u003c/h1\u003e\n\u003cp\u003eWebDriver is a general purpose library for automating web browsers. It was started as part of the \u003ca href=\"https://docs.seleniumhq.org/projects/webdriver/\"\u003eSelenium\u003c/a\u003e project, which is a popular and comprehensive set of tools for browser automation initially written for Java but now with support for most programming languages.\u003c/p\u003e\n\u003cp\u003eNightwatch uses the \u003ca href=\"https://www.w3.org/TR/webdriver/\"\u003eWebDriver API\u003c/a\u003e to perform the browser automation related tasks, like opening windows and clicking links for instance.\u003c/p\u003e\n\u003cp\u003eWebDriver is now a W3C specification aiming to standardize browser automation. WebDriver is a remote control interface that enables introspection and control of user agents. It provides a platform and a restful HTTP api as a way for web browsers to be remotely controlled.\u003c/p\u003e\n\u003ch1 id=\"theory-of-operation\"\u003eTheory of Operation\u003c/h1\u003e\n\u003cp\u003eNightwatch works by communicating over a restful HTTP API with a WebDriver server (such as ChromeDriver or Selenium Server). The protocol is defined by the W3C WebDriver spec, which is derived from \u003ca href=\"https://github.com/SeleniumHQ/selenium/wiki/JsonWireProtocol\"\u003eJSON Wire protocol\u003c/a\u003e. See below for an example workflow for browser initialization.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"images/operation.png\" alt=\"alt text\"\u003e\u003c/p\u003e\n\u003cp\u003eMost of the times, Nightwatch needs to send at least 2 requests to the WebDriver server in order to perform a command or assertion.\n...The first one being the request to locate an element given a CSS selector (or Xpath expression)\n...Next to perform the actual command/assertion on the given element.\u003c/p\u003e\n\u003ch1 id=\"setup\"\u003eSetup\u003c/h1\u003e\n\u003col\u003e\n\u003cli\u003e\u003cstrong\u003eNode.js\u003c/strong\u003e should be installed.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eNPM\u003c/strong\u003e should be installed.\u003c/li\u003e\n\u003cli\u003eCreate a directory with \u003cstrong\u003enightwatchjs-basic\u003c/strong\u003e name.\u003c/li\u003e\n\u003cli\u003eRun \u003ccode\u003enpm init\u003c/code\u003e and complete with basic details.\u003c/li\u003e\n\u003cli\u003eRun \u003ccode\u003enpm install nightwatch\u003c/code\u003e to install nightwatch within workspace.\u003c/li\u003e\n\u003cli\u003eDownload \u003ccode\u003eselenium\u003c/code\u003e and \u003ccode\u003echrome\u003c/code\u003e drivers and copy to \u003ccode\u003ebin\u003c/code\u003e directory.\u003c/li\u003e\n\u003cli\u003eCreate \u003ccode\u003enightwatch.json\u003c/code\u003e file within working directory. The nightwatch test runner binary expects a configuration file.\u003c/li\u003e\n\u003cli\u003eCreate \u003ccode\u003etests\u003c/code\u003e directory and create \u003ccode\u003ehomepage.js\u003c/code\u003e file.\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003epackage.json\u003c/code\u003e with test runner for \u003ccode\u003escripts\u003c/code\u003e value.\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch1 id=\"screenshots\"\u003eScreenshots\u003c/h1\u003e\n\u003ch2 id=\"nightwatchconfjs\"\u003enightwatch.conf.js\u003c/h2\u003e\n\u003cp\u003e\u003cimg src=\"images/nightwatch.conf.js.png\" alt=\"alt text\"\u003e\u003c/p\u003e\n\u003ch2 id=\"testshomepagejs\"\u003etests/homepage.js\u003c/h2\u003e\n\u003cp\u003e\u003cimg src=\"images/homepage.png\" alt=\"alt text\"\u003e\u003c/p\u003e\n\u003ch2 id=\"packagejson\"\u003epackage.json\u003c/h2\u003e\n\u003cp\u003e\u003cimg src=\"images/package.png\" alt=\"alt text\"\u003e\u003c/p\u003e\n\u003ch1 id=\"run\"\u003eRun\u003c/h1\u003e\n\u003cp\u003e\u003ccode\u003e$ npm run test\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"images/test-execution.png\" alt=\"alt text\"\u003e\u003c/p\u003e\n\u003ch1 id=\"version-changes\"\u003eVersion changes\u003c/h1\u003e\n\u003ch1 id=\"130\"\u003e1.3.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated dependencies\n\u003cul\u003e\n\u003cli\u003eNightwatch \u003ccode\u003e1.4.3\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eChromedriver \u003ccode\u003e85.0.1\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpdated test run command\u003c/li\u003e\n\u003cli\u003eUpdated readme with test run screenshot.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"120\"\u003e1.2.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePreserved with \u003ccode\u003e1.2.0\u003c/code\u003e tag.\u003c/li\u003e\n\u003cli\u003eNightwatch \u003ccode\u003e1.1.11\u003c/code\u003e, Chromedriver \u003ccode\u003e74.0.0\u003c/code\u003e version\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"110\"\u003e1.1.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo need of individual driver download on mac and windows os. Removed explicit dependency on drivers. Now automatically download required drivers during \u003ccode\u003enpm i\u003c/code\u003e run.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"100\"\u003e1.0.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBasic project setup with Nightwatch framework and run.\u003c/li\u003e\n\u003cli\u003eDepends on Selenium and Chrome web driver.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1 id=\"reference\"\u003eReference\u003c/h1\u003e\n\u003cp\u003e\u003ca href=\"http://nightwatchjs.org/gettingstarted\"\u003eOfficial Nightwatch\u003c/a\u003e\u003c/p\u003e\n\r\n\u003c/body\u003e\r\n\u003c/html\u003e\r\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjagadeeshshetty%2Fnightwatchjs-basic","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjagadeeshshetty%2Fnightwatchjs-basic","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjagadeeshshetty%2Fnightwatchjs-basic/lists"}