Users are supposed to join events several times.
stopEvent function modifies isProducer variable. It doesnt update _participiants variable.
joinevent() function modifies _participiants variable to true. But since stopEvent doesnt update it to false the user will not be able to join another event
function testJoinEventAfterEventStoppedStarted() public activeEvent eligibleForReward {
vm.startPrank(bob);
marketplace.collectReward();
healthToken.approve(address(martenitsaEvent), 10 ** 18);
martenitsaEvent.joinEvent();
vm.stopPrank();
vm.warp(1 days + 1);
martenitsaEvent.stopEvent();
martenitsaEvent.startEvent(1 days);
vm.startPrank(chasy);
martenitsaEvent.createMartenitsa("bracelet");
martenitsaEvent.createMartenitsa("bracelet");
martenitsaEvent.createMartenitsa("bracelet");
marketplace.listMartenitsaForSale(3, 1 wei);
marketplace.listMartenitsaForSale(4, 1 wei);
marketplace.listMartenitsaForSale(5, 1 wei);
martenitsaEvent.approve(address(marketplace), 3);
martenitsaEvent.approve(address(marketplace), 4);
martenitsaEvent.approve(address(marketplace), 5);
marketplace.makePresent(bob, 3);
marketplace.makePresent(bob, 4);
marketplace.makePresent(bob, 5);
vm.stopPrank();
vm.startPrank(bob);
marketplace.collectReward();
healthToken.approve(address(martenitsaEvent), 10 ** 18);
martenitsaEvent.joinEvent();
vm.stopPrank();
martenitsaEvent.joinEvent();
vm.stopPrank(); */
}
It's recommended to add _participiant modifier in stopEvent() function.