How many times have you had this conversation?
"Hey, the project doesn't run on my machine any more."
"Have you tried running
npm install
?"
...pause...
"Yeah, that fixed it, thanks"
# Use nano instead of vim | |
EDITOR=nano | |
# always list in long format | |
alias ls='ls -la --color' | |
# set dynamic prompt and window/tab title | |
PS1='\[\e]0;${PWD##*/}\a\]\n' # set window title | |
#PS1="$PS1"'\u@\h ' # user@host<space> | |
PS1="$PS1"'\[\033[32m\]' # change color |
How many times have you had this conversation?
"Hey, the project doesn't run on my machine any more."
"Have you tried running
npm install
?"
...pause...
"Yeah, that fixed it, thanks"
before_script: | |
- npm install | |
test: | |
script: npm test |
While tests run in source order, surrounding code does not which can lead to hard to debug issues.
Compare the test file below with the sample output below that and note the order of the log messages.
it
, beforeAll
, afterAll
, beforeEach
or afterEach
runs immediately on initialisation.pull-modules () { | |
BASE_DIR=$(pwd) | |
# find symlinks in node_modules | |
for MODULE in $(find node_modules -type l -depth 1) | |
do | |
cd "$MODULE" | |
BRANCH=$(git rev-parse --abbrev-ref HEAD) | |
echo "Updating $MODULE ($BRANCH)..." |
Shows a list of all node processes and lets you select which one you want to debug.
For example
$ debug.sh
1) 73428 node webpack/webpackDevServer.js
2) 73494 node build/dist/server.js
Select which process to debug: █
I hereby claim:
To claim this, I am signing this object:
Demo showing that by specifying a resolver for a scalar property, you can override the value.
This is useful for authorization as it means you can centrally check permissions per field. Your general resolvers can return whole objects without caring about which fields the current user may or may not be allowed to see.
// a very short TestCafe test suite | |
fixture('Admin user') | |
test('Create posts journey', t => { | |
const postTitle = 'Hello testing' | |
return t | |
.typeText(ReactSelector('PostCreator FormControl'), postTitle) | |
.click(ReactSelector('PostCreator Button')) | |
.expect(ReactSelector('Post').first().find('label').innerText) | |
.eql(postTitle) | |
}) |