/* Position.sol # closePosition */
  _repay(asset, quote, posId);
  _redeem(asset, bathTokenAmount);

  _removePosition(posId);
/* Position.sol # _repay */
  address _bathTokenQuote = bathHouseV2.getBathTokenFromAsset(_quote);
  uint256 _amountToRepay = borrowBalanceOfPos(_posId); // total borrowed quote tokens

  // sell asset for quote
  _rubiconSwap(_asset, _quote, _amountToRepay, false);
  uint256 _quoteBalance = IERC20(_quote).balanceOf(address(this));
/* Position.sol # _marketSell */
  if (_assetBalance < _payAmount) {
      IERC20(_asset).transferFrom(
          msg.sender,
          address(this),
          _payAmount.sub(_assetBalance).add(_fee)
      );
  }
  it.only("Cannot close position", async function () {
    const { owner, testCoin, testStableCoin, Position, rubiconMarket } =
      await loadFixture(deployPoolsUtilityFixture);

    await Position.connect(owner).buyAllAmountWithLeverage(
      testCoin.address,
      testStableCoin.address,
      TEST_AMOUNT,
      parseUnits("2.97")
    );

    /* Revoke: as if there were no assets */
    await testCoin.connect(owner).approve(Position.address, parseUnits("0"));
    /* Cannot close position without enough assets */
    await expect(Position.connect(owner).closePosition(1)).to.be.reverted;
  });
