The trials are awarded according to the setting on Stripe - not the data you enter in SparkServiceProvider (I suppose it is the same for BrainTree).
whatever you set in Spark only is for info purposes for the user ( goes without saying that it should be identical...)
same is true for prices and trial end dates (and probaly a few more properties, too).
E.g. if Stripe data says that the trial ends tomorrow and your database says next week (e.g. if you manually changed for testing) - it will end tomorrow.
I am seeing this same issue too (I am running in test mode on stripe).
I have a 30 day free trial set up in stripe.
However when I register a new account and then make select the plan and enter in the testing credit card info, it is billed right away...
So do I need to define this in my spark files too, in addition to on the stripe dashboard?