““markdown
Live on
📦 Interview Test API
Sebuah project Ruby on Rails untuk take-home test. Fitur meliputi:
-
✅ Unit test dengan RSpec
-
🧠 Caching (optional)
-
📚 Dokumentasi kode dengan YARD
-
📊 Laporan coverage test
🚀 Goals
-
Implementasi unit test dengan cakupan yang memadai
-
Menjalankan semua test menggunakan
rspec
-
(Optional) Menambahkan mekanisme caching
-
Dokumentasi internal API/controller/service menggunakan YARD
-
Menyediakan laporan coverage test
🛠️ Setup Project
1. Clone & Install dependencies
git clone https://github.com/username/interview-test-api.git
cd interview-test-api
bundle install
````
### 2. Setup Database
bash rails db:create db:migrate
### 3. Jalankan Server
bash rails server
Akses di browser:
---
## ✅ Testing
### Menjalankan RSpec
bash bundle exec rspec
---
## 📊 Test Coverage Report
Jika kamu menggunakan `simplecov`, laporan akan tersedia setelah RSpec dijalankan.
### Akses laporan coverage:
127.0.0.1:3000/coverage/index.html#_AllFiles
> File ini biasanya berada di folder `coverage/` hasil dari SimpleCov.
---
## 📚 Dokumentasi YARD
### 1. Generate dokumentasi:
bash yard doc –output-dir public/doc
### 2. Akses dokumentasi:
“‘
📌 API Endpoints
Users
-
GET /api/v1/users
↳ Query Params:
page
– halaman (opsional)
per_page
– jumlah per halaman (opsional) -
GET /api/v1/users/:id
-
POST /api/v1/users
-
PATCH /api/v1/users/:id
-
PUT /api/v1/users/:id
-
DELETE /api/v1/users/:id
Jobs
-
GET /api/v1/jobs
↳ Query Params:
user_id
– filter berdasarkan ID user (opsional)
page
– halaman (opsional)
per_page
– jumlah per halaman (opsional) -
GET /api/v1/jobs/:id
-
POST /api/v1/jobs
-
PATCH /api/v1/jobs/:id
-
PUT /api/v1/jobs/:id
-
DELETE /api/v1/jobs/:id
🔧 Tools
-
Rails 7.x / 6.x
-
Ruby 3.x
-
RSpec
-
SimpleCov
-
ActiveModelSerializers
-
YARD