import { BANDS } from "./constants"; import { STOP, SET_VOLUME, SET_BALANCE, TOGGLE_REPEAT, TOGGLE_SHUFFLE, SET_BAND_VALUE } from "./actionTypes"; import { stop, setVolume, setBalance, toggleRepeat, toggleShuffle, setPreamp, setEqBand, setEqToMax, setEqToMin, setEqToMid } from "./actionCreators"; test("stop", () => { const expectedAction = { type: STOP }; expect(stop()).toEqual(expectedAction); }); describe("setVolume", () => { it("enforces a mimimum value", () => { const expectedAction = { type: SET_VOLUME, volume: 0 }; expect(setVolume(-10)).toEqual(expectedAction); }); it("enforces a maximum value", () => { const expectedAction = { type: SET_VOLUME, volume: 100 }; expect(setVolume(110)).toEqual(expectedAction); }); }); describe("setBalance", () => { it("enforces a mimimum value", () => { const expectedAction = { type: SET_BALANCE, balance: -100 }; expect(setBalance(-110)).toEqual(expectedAction); }); it("enforces a maximum value", () => { const expectedAction = { type: SET_BALANCE, balance: 100 }; expect(setBalance(110)).toEqual(expectedAction); }); it("snaps to zero for positive values close to zero", () => { const expectedAction = { type: SET_BALANCE, balance: 0 }; expect(setBalance(24)).toEqual(expectedAction); }); it("snaps to zero for negative values close to zero", () => { const expectedAction = { type: SET_BALANCE, balance: 0 }; expect(setBalance(-24)).toEqual(expectedAction); }); }); test("toggleRepeat", () => { const expectedAction = { type: TOGGLE_REPEAT }; expect(toggleRepeat()).toEqual(expectedAction); }); test("toggleShuffle", () => { const expectedAction = { type: TOGGLE_SHUFFLE }; expect(toggleShuffle()).toEqual(expectedAction); }); test("setPreamp", () => { const expectedAction = { type: SET_BAND_VALUE, band: "preamp", value: 100 }; expect(setPreamp(100)).toEqual(expectedAction); }); test("setEqBand", () => { const expectedAction = { type: SET_BAND_VALUE, band: 3, value: 100 }; expect(setEqBand(3, 100)).toEqual(expectedAction); }); test("setEqToMax", () => { const mockDispatch = jest.fn(); const dispatcher = setEqToMax(); dispatcher(mockDispatch); const expectedCalls = BANDS.map(band => [ { type: SET_BAND_VALUE, band, value: 100 } ]); expect(mockDispatch.mock.calls).toEqual(expectedCalls); }); test("setEqToMin", () => { const mockDispatch = jest.fn(); const dispatcher = setEqToMin(); dispatcher(mockDispatch); const expectedCalls = BANDS.map(band => [ { type: SET_BAND_VALUE, band, value: 0 } ]); expect(mockDispatch.mock.calls).toEqual(expectedCalls); }); test("setEqToMid", () => { const mockDispatch = jest.fn(); const dispatcher = setEqToMid(); dispatcher(mockDispatch); const expectedCalls = BANDS.map(band => [ { type: SET_BAND_VALUE, band, value: 50 } ]); expect(mockDispatch.mock.calls).toEqual(expectedCalls); });