diff --git a/erpnext/accounts/doctype/subscriptions/test_subscriptions.py b/erpnext/accounts/doctype/subscriptions/test_subscriptions.py
index 48e6461..abd2f3f 100644
--- a/erpnext/accounts/doctype/subscriptions/test_subscriptions.py
+++ b/erpnext/accounts/doctype/subscriptions/test_subscriptions.py
@@ -5,7 +5,7 @@
 
 import frappe
 import unittest
-from frappe.utils.data import nowdate, add_days, get_last_day, cint, getdate
+from frappe.utils.data import nowdate, add_days, get_last_day, cint, getdate, add_to_date
 
 
 class TestSubscriptions(unittest.TestCase):
@@ -19,6 +19,24 @@
 			plan.billing_interval_count = 1
 			plan.insert()
 
+		if not frappe.db.exists('Subscription Plan', '_Test Plan Name 2'):
+			plan = frappe.new_doc('Subscription Plan')
+			plan.plan_name = '_Test Plan Name 2'
+			plan.item = '_Test Non Stock Item'
+			plan.cost = 1999.99
+			plan.billing_interval = 'Month'
+			plan.billing_interval_count = 1
+			plan.insert()
+
+		if not frappe.db.exists('Subscription Plan', '_Test Plan Name 3'):
+			plan = frappe.new_doc('Subscription Plan')
+			plan.plan_name = '_Test Plan Name 3'
+			plan.item = '_Test Non Stock Item'
+			plan.cost = 1999.99
+			plan.billing_interval = 'Day'
+			plan.billing_interval_count = 14
+			plan.insert()
+
 	def create_subscriber(self):
 		if not frappe.db.exists('Subscriber', '_Test Customer'):
 			subscriber = frappe.new_doc('Subscriber')
@@ -55,9 +73,10 @@
 
 		self.assertEqual(subscription.trial_period_start, None)
 		self.assertEqual(subscription.trial_period_end, None)
-		self.assertEqual(subscription.current_invoice_start, getdate(nowdate()))
-		self.assertEqual(subscription.current_invoice_end, get_last_day(nowdate()))
-		self.assertEqual(len(subscription.invoices), 1)
+		self.assertEqual(subscription.current_invoice_start, nowdate())
+		self.assertEqual(subscription.current_invoice_end, add_to_date(nowdate(), months=1, days=-1))
+		# No invoice is created
+		self.assertEqual(len(subscription.invoices), 0)
 		self.assertEqual(subscription.status, 'Active')
 
 		subscription.delete()
@@ -71,18 +90,31 @@
 
 		self.assertRaises(frappe.ValidationError, subscription.save)
 
-	def test_subscription_invoice_days_until_due(self):
+	def test_create_subscription_multi_with_different_billing_fails(self):
 		subscription = frappe.new_doc('Subscriptions')
 		subscription.subscriber = '_Test Customer'
+		subscription.trial_period_end = nowdate()
+		subscription.trial_period_start = add_days(nowdate(), 30)
 		subscription.append('plans', {'plan': '_Test Plan Name'})
-		subscription.save()
+		subscription.append('plans', {'plan': '_Test Plan Name 3'})
 
-		generated_invoice_name = subscription.invoices[-1].invoice
-		invoice = frappe.get_doc('Sales Invoice', generated_invoice_name)
+		self.assertRaises(frappe.ValidationError, subscription.save)
 
-		self.assertEqual(
-			invoice.due_date, 
-			add_days(subscription.current_invoice_end, cint(subscription.days_until_due))
-		)
+	# def test_subscription_invoice_days_until_due(self):
+	# 	subscription = frappe.new_doc('Subscriptions')
+	# 	subscription.subscriber = '_Test Customer'
+	# 	subscription.append('plans', {'plan': '_Test Plan Name'})
+	# 	subscription.save()
 
-		subscription.delete()
+	# 	generated_invoice_name = subscription.invoices[-1].invoice
+	# 	invoice = frappe.get_doc('Sales Invoice', generated_invoice_name)
+
+	# 	self.assertEqual(
+	# 		invoice.due_date, 
+	# 		add_days(subscription.current_invoice_end, cint(subscription.days_until_due))
+	# 	)
+
+	# 	subscription.delete()
+
+	def test_subscription_creation_with_multiple_plans(self):
+		pass
