const expect = require('chai').expect;
const std = require('../src/index');

describe('hourlySalary()', () => {
  it('以月薪 36,000 元計算，平均時薪為 150 元', () => {
    expect(std.hourlySalary(36000)).eq(150);
  });
});

describe('overtimePay()', () => {
  describe('休息日 (regular leave)', () => {
    it('平均時薪 150 工作一小時，薪資為 400 元（勞基法 24 條）', () => {
      expect(std.overtimePay(150, 1, std.REGULAR_LEAVE)).eq(400)
    });

    it('平均時薪 150 工作兩小時，薪資為 400 元（勞基法 24 條）', () => {
      expect(std.overtimePay(150, 2, std.REGULAR_LEAVE)).eq(400)
    });

    it('平均時薪 150 工作五小時，薪資為 1900 元（勞基法 24 條）', () => {
      expect(std.overtimePay(150, 5, std.REGULAR_LEAVE)).eq(1900)
    });

    it('平均時薪 150 工作 5.5 個小時，薪資為 1900 元（勞基法 24 條）', () => {
      expect(std.overtimePay(150, 5.5, std.REGULAR_LEAVE)).eq(1900)
    });

    it('平均時薪 150 工作 8 個小時，薪資為 1900 元（勞基法 24 條）', () => {
      expect(std.overtimePay(150, 8, std.REGULAR_LEAVE)).eq(1900)
    });

    it('平均時薪 150 工作 8.5 個小時，薪資為 2900 元（勞基法 24 條）', () => {
      expect(std.overtimePay(150, 8.5, std.REGULAR_LEAVE)).eq(2900)
    });

    it('平均時薪 150 工作 10 個小時，薪資為 2900 元（勞基法 24 條）', () => {
      expect(std.overtimePay(150, 10, std.REGULAR_LEAVE)).eq(2900)
    });

    it('平均時薪 150 工作 12 個小時，薪資為 2900 元（勞基法 24 條）', () => {
      expect(std.overtimePay(150, 12, std.REGULAR_LEAVE)).eq(2900)
    });

    it('平均時薪 150 工作 13 個小時，丟出 RangeError（勞基法 32 條）', () => {
      try {
        std.overtimePay(150, 13, std.REGULAR_LEAVE);
      }
      catch (err) {
        expect(err instanceof RangeError).is.true;
      }
    });
  });
});

@@ -303,25 +303,25 @@
 0 %E5%B7%A5%E4%BD%9C%E4%B8%80%E5%B0%8F%E6%99%82%EF%BC%8C%E8%96%AA%E8%B3%87%E7%82%BA 
-4
+9
 00 %E5%85%83%EF%BC%88%E5%8B%9E%E5%9F%BA%E6%B3%95 24 
@@ -385,33 +385,33 @@
 ULAR_LEAVE)).eq(
-4
+9
 00)%0A    %7D);%0A%0A   
@@ -434,17 +434,17 @@
 %E5%85%A9%E5%B0%8F%E6%99%82%EF%BC%8C%E8%96%AA%E8%B3%87%E7%82%BA 
-4
+9
 00 %E5%85%83%EF%BC%88%E5%8B%9E%E5%9F%BA%E6%B3%95
@@ -520,17 +520,146 @@
 VE)).eq(
-4
+900)%0A    %7D);%0A%0A    it('%E5%B9%B3%E5%9D%87%E6%99%82%E8%96%AA 150 %E5%B7%A5%E4%BD%9C 4 %E5%B0%8F%E6%99%82%EF%BC%8C%E8%96%AA%E8%B3%87%E7%82%BA 900 %E5%85%83%EF%BC%88%E5%8B%9E%E5%9F%BA%E6%B3%95 24 %E6%A2%9D%EF%BC%89', () =%3E %7B%0A      expect(std.overtimePay(150, 4, std.REGULAR_LEAVE)).eq(9
 00)%0A    

Fix overtime pay with working hour less than 4 hours for regular leave