/** * Test the invoice status changes from new -> billed -> paid with only free payments. * @test */ function invoice_status_trial_paid_directly() { TData::enable_addon(MS_Model_Addon::ADDON_TRIAL); $user_id = TData::id('user', 'editor'); $membership_id = TData::id('membership', 'simple-trial'); $subscription = TData::subscribe($user_id, $membership_id); // Brand new invoice, must be NEW $invoice = $subscription->get_current_invoice(); $this->assertEquals(MS_Model_Invoice::STATUS_NEW, $invoice->status); // After the stripe payment it must be PAID instantly $invoice->pay_it('stripe', 'external_123'); $this->assertEquals(MS_Model_Invoice::STATUS_PAID, $invoice->status); }