お知らせ

現在サイトのリニューアル作業中のため、全体的にページの表示が乱れています。
投稿日:
言語::TypeScript開発::テストNode.js::Jest

単体テストの観点でいうと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');
  });
});

手順

  1. xrdpが入っていなければxrdpをインストール
    1. Desktop版なら最初から入ってた気もする
  2. 3389ポートを開ける
    1. sudo ufw allow 3389
  3. オートログインを殺す
    1. sudo sed -ie 's/AutomaticLoginEnable=true/AutomaticLoginEnable=false/' /etc/gdm3/custom.conf
  4. あとは再起動してWindowsのリモートデスクトップから繋げて画面が映ればOK
    1. sudo reboot

トラブルシューティング

接続したけど画面が真っ暗

pkill gnome-sessionでログインセッションを殺す

左にあるDockが表示されない・設定に外観がない・その他物理接続時とデスクトップの表示が異なる

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が使える

カスタマイズ後のシェル環境画面

zshの導入

.zshrcの編集については各々の設定があると思うので適宜読み替えてください

  1. chsh -s /usr/local/bin/zsh
  2. .zshrc一式を突っ込む
    1. https://github.com/Lycolia/my-zsh-conf
  3. .zshrcfor sakura internet以下のコメントを外して有効化する
  4. command not found: dircolorsを解消するために次項の手順でcoreutilsを導入する

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

nanoの導入

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