お知らせ
現在サイトのリニューアル作業中のため、表示が崩れているページが存在することがあります。
単体テストの観点でいうとprocess.argvそのものはモックしないほうが良いと思っているので、本記事ではprocess.argv自体をモックする方法と、それを回避する方法を紹介する
describe('example', () => {
afterEach(() => {
// 元に戻しておく
process.argv.length = 2;
});
it('got first param', () => {
process.argv.push('param1');
expect(process.argv.length).toBe(3);
expect(process.argv[2]).toBe('param1');
});
});
process.argvを利用している関数でprocess.argvを引数に取ればモック不要となる
const getArgv = (argv: string[]) => {
// some procedure
}
describe('getArgv', () => {
it('got first param', () => {
const argv = [,, 'param1'];
expect(argv.length).toBe(3);
expect(argv[2]).toBe('param1');
});
});
runコマンドでサービスを指定してコマンドを蹴ると実行結果が取れる
docker-compose run node-git 'npm' 't'docker-compose run node-git 'sh' '-c' '"ls -la && grep foo"'xrdpが入っていなければxrdpをインストール
3389ポートを開ける
sudo ufw allow 3389sudo sed -ie 's/AutomaticLoginEnable=true/AutomaticLoginEnable=false/' /etc/gdm3/custom.confsudo rebootpkill gnome-sessionでログインセッションを殺す
sudo nano /etc/xrdp/startwm.shして以下の内容を追記する
export DESKTOP_SESSION=ubuntu
export GNOME_SHELL_SESSION_MODE=ubuntu
export XDG_CURRENT_DESKTOP=ubuntu:GNOME
レンタルサーバーだってリッチにしたい!という想いの記事です。
zshが使えるdircolorsが使える(lsの色分けができる)nanoが使える.zshrcの編集については各々の設定があると思うので適宜読み替えてください
chsh -s /usr/local/bin/zsh.zshrc一式を突っ込む
.zshrcのfor sakura internet以下のコメントを外して有効化するcommand not found: dircolorsを解消するために次項の手順でcoreutilsを導入するGNU lsとdircolorsの導入により、lsに色付けが出来るようにします
mkdir local
wget https://ftp.gnu.org/gnu/coreutils/coreutils-9.2.tar.xz
xz -dc coreutils-9.2.tar.xz | tar xf -
cd coreutils-9.2/
./configure --prefix=/home/<user-name>/local/
make
make install
wget https://www.nano-editor.org/dist/v7/nano-7.2.tar.xz
xz -dc nano-7.2.tar.xz | tar xf -
cd nano-7.2/
./configure --prefix=/home/<user-name>/local/ --enable-color --enable-nanorc
make
make install
cp doc/sample.nanorc ~/.nanorc
# オートインデント有効化
perl -i -pe 's/^# (set autoindent)/$1/' ~/.nanorc
# シンタックスハイライト有効化
perl -i -pe 's/^# (include .+\/local\/share\/nano\/\*.nanorc)/$1/' ~/.nanorc
JavaScriptで添付ファイルを拾うのと、ファイルを落とす処理のサンプルコード
<html>
<head>
<meta charset='utf-8'>
<title>js file up/dl example</title>
<script>
window.onload = () => {
const fr = new FileReader();
const el = document.getElementById("test");
fr.onload = (ev) => {
const dl = document.createElement('a');
dl.setAttribute('href', ev.target.result);
dl.setAttribute('download', el.files[0].name);
dl.style.display = 'none';
document.body.appendChild(dl);
dl.click();
document.body.removeChild(dl);
};
el.onchange = () => {
fr.readAsDataURL(el.files[0]);
};
};
</script>
</head>
<body>
<input type="file" id="test"></input>
</body>
</html>