//  Copyright (C) 2018 Zilliqa
//
//  This file is part of zilliqa-js
//
//  This program is free software: you can redistribute it and/or modify
//  it under the terms of the GNU General Public License as published by
//  the Free Software Foundation, either version 3 of the License, or
//  (at your option) any later version.
//
//  This program is distributed in the hope that it will be useful,
//  but WITHOUT ANY WARRANTY; without even the implied warranty of
//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//  GNU General Public License for more details.
//
//  You should have received a copy of the GNU General Public License
//  along with this program.  If not, see <https://www.gnu.org/licenses/>.

import { ReqMiddlewareFn, ResMiddlewareFn } from '../src/util';

export const mockReqMiddleware: ReqMiddlewareFn = (req) => {
  if (!Array.isArray(req.payload)) {
    return {
      ...req,
      payload: {
        ...req.payload,
        params: [...req.payload.params, 'I am a test'],
      },
    };
  }
  // batch
  return {
    ...req,
    payload: { ...req.payload, params: [...req.payload, 'I am a test'] },
  };
};

export const mockResMiddleware: ResMiddlewareFn<string, string, never> = (
  res,
) => {
  if (res.result && typeof res.result === 'string') {
    return { ...res, result: res.result.toUpperCase() };
  }

  return res;
};
