Progate Path使った感想とログ【無料分のみ】

## 初めに
Progateの新サービス、Progate CLIのログと感想を書いておきます。


## Progate CLIインストール~ログイン

https://app.path.progate.com/tasks/Q6vNluv08jcMFoMCu9si7#cli-install

```bash
% bash <(curl -sSfL https://assets.path.progate.com/cli-installer/out/setup.sh)
```

```bash
Progate CLI is going to be installed on your system.
This script will run these commands:

$ mkdir -p /Users/***/.progate/bin
$ curl -o /Users/***/.progate/bin/progate -sSfL https://assets.path.progate.com/cli/out/progate-cli-darwin-amd64
$ chmod +x /Users/***/.progate/bin/progate

Do you want to download Progate CLI? [y/N] y
downloading... done.
installing... done.
```

```bash
Next, this script will add $HOME/.progate/bin to your PATH.
This script will run these commands:

$ echo '' >> /Users/mkk/.zshrc
$ echo 'export PATH=$HOME/.progate/bin:$PATH' >> /Users/mkk/.zshrc

Do you want to run these commands? [y/N] y

The installation has completed.
Restart the terminal and run "progate -v".

Enjoy coding!
```

**`exit`して有効化する**

```bash
% exit
Saving session...
...copying shared history...
...saving history...truncating history files...
...completed.
Deleting expired sessions...     233 completed.

[プロセスが完了しました]
```

**ターミナルのウィンドウを閉じる**

**progateコマンドが実行できるか確認**

```bash
progate -v
```

```bash
progate version 2022-11-30T02:20:59Z 85b8a91984ecc234d9f94c5e11e85112658a3cdb (production)
```

## Progateにログイン

```bash
% progate login
```

```bash
Logging into your Progate account...

Opening a URL: https://app.path.progate.com/cli-login?attempt_id=18ebf256faeebb20f9f3 
✓ Waiting for authentication...

Successfully logged in!
```

![スクリーンショット_2022-12-01_11.33.16.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1051129/4e23830c-6a87-cec5-dc0b-7cf3c1e8f68a.jpeg)

## ソースコードのダウンロード

```bash
% mkdir -p $HOME/progate_path/tutorial_progate_cli_install 
% cd $HOME/progate_path/tutorial_progate_cli_install
tutorial_progate_cli_install % curl -o tutorial.zip https://assets.path.progate.com/repository_codes/t185WBtwQaC3iK-MOBvtq.zip
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  2136  100  2136    0     0   4778      0 --:--:-- --:--:-- --:--:--  4778
tutorial_progate_cli_install % unzip tutorial.zip
Archive:  tutorial.zip
   creating: tutorial/
   creating: tutorial/.progate/
  inflating: tutorial/.progate/task.textproto  
  inflating: tutorial/.progate/env.yml  
 extracting: tutorial/hello.txt      
  inflating: tutorial/LICENSE        
 extracting: tutorial/answer.txt     
tutorial_progate_cli_install % cd tutorial
tutorial %  ls
LICENSE		answer.txt	hello.txt
tutorial % pwd
/Users/***/progate_path/tutorial_progate_cli_install/tutorial
tutorial %
```

## タスクをクリア

`progate submit`
- タスクが完了しているかをテストするコマンドを順次実行して、サーバーに送信
- 今回では `progate diagnose`コマンドによって環境をテストして、`diff`コマンドによって `hello.txt` が `answer.txt`と一致しているかをテスト

```bash
% progate submit
```

```bash
TEST [1/2]

✓ progate diagnose
⠏ diff --strip-trailing-cr --ignore-space-change --ignore-blank-lines answer.txt⠋ diff --strip-trailing-cr --ignore-space-change --ignore-blank-lines answer.txt✗ diff --strip-trailing-cr --ignore-space-change --ignore-blank-lines answer.txt hello.txt
1 test failed.
Run each command to see the details.

SUBMIT [2/2]

Submitting results to the server and synchronizing with your browser...
Success! Open the task page: https://app.path.progate.com/tasks/Q6vNluv08jcMFoMCu9si7
```

`hello.txt` と `answer.txt`の内容を同じになるように書き換える

![Before](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1051129/a0fcc4dc-a7bd-969e-bf54-837edfad56e8.png) ![After](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1051129/1844afd3-d96f-ace9-f7b3-deece5fa8040.png)


```bash
% progate submit
```

```bash
TEST [1/2]

✓ progate diagnose
⠏ diff --strip-trailing-cr --ignore-space-change --ignore-blank-lines answer.txt⠋ diff --strip-trailing-cr --ignore-space-change --ignore-blank-lines answer.txt✓ diff --strip-trailing-cr --ignore-space-change --ignore-blank-lines answer.txt hello.txt
All check items passed.

SUBMIT [2/2]

Submitting results to the server and synchronizing with your browser...
Success! Open the task page: https://app.path.progate.com/tasks/Q6vNluv08jcMFoMCu9si7
```

![Before](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1051129/72592a26-5d7c-e270-7b89-95fd0c557611.png)


Before

![After](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1051129/1c265f4a-972d-9046-3388-70efe79d37e5.jpeg)

After

## 感想
- ターミナルの知識があることが前提の内容なので、その旨を何処かに書いてあるといいのかなと感じた
- 上記の[チュートリアルのページ](https://app.path.progate.com/tasks/Q6vNluv08jcMFoMCu9si7#cli-install)にアクセスできず、いきなりチャレンジのぺージに遷移させられるので再確認できないのが気になる
- テストやデバッグは学習に含まれていないことが多いので、実務に入る前に触れられるのはよい
- 上記を踏まえて、コードは書いたことあるけどテストの経験がない、けどやってみたいなという人にはおすすめ

---

### 最後に
短い記事でしたが最後まで見ていただきありがとうございました。

明日はNext.jsについて投稿予定です。