Testing GSN with truffle and ganache

There is some examples or resources about testing with truffle? I’m trying to set up the test network but I don’t understand how to use beforeEach and reset the gsn provider. This is my implementation:

contract('BiteIDGSN', accounts => {
    let account 
    let biteIDGSN
    let biteIDCustomerGSN

    beforeEach(async function() {        
        const {forwarderAddress, paymasterAddress} = await GsnTestEnvironment.loadDeployment()

        this.BiteIDToken = await BiteIDToken.new()
        this.StakeWarranty = await StakeWarranty.new(this.BiteIDToken.address)

        const gsnProvider = await RelayProvider.newProvider({
            provider: web3.currentProvider,
            config: {
                loggerConfiguration: { logLevel: 'error' },
                paymasterAddress,
                // these 2 params are needed only for ganache:
                methodSuffix: '',
                jsonStringifyRequest: false,
            }
        }).init()
        
        biteIDGSN = await BiteIDGSN.new(forwarderAddress, this.BiteIDToken.address, this.StakeWarranty.address);
        biteIDCustomerGSN = await BiteIDCustomerGSN.new(forwarderAddress, this.StakeWarranty.address);
        
        BiteIDGSN.web3.setProvider(gsnProvider)
        BiteIDCustomerGSN.web3.setProvider(gsnProvider)

        await this.BiteIDToken.mint(biteIDGSN.address, 1000000, {from: accounts[0]})
        await this.BiteIDToken.mint(this.StakeWarranty.address, 1000000, {from: accounts[0]})

        account = gsnProvider.newAccount().address
    }) 

...

The first test pass as expected, but the second test always drops this error:

Error: GSN cannot relay contract deployment transactions. Add {from: accountWithEther, useGSN: false}. -- Reason given: Custom error (could not decode).

I set the deploy of the two sc adding useGSN: false like this:

biteIDGSN = await BiteIDGSN.new(forwarderAddress, this.BiteIDToken.address, this.StakeWarranty.address, {from: accounts[0], useGSN: false});

biteIDCustomerGSN = await BiteIDCustomerGSN.new(forwarderAddress, this.StakeWarranty.address, {from: accounts[0], useGSN: false}); 

Now works as expected.