diff --git a/erpnext/crm/doctype/item/test_item.js b/erpnext/crm/doctype/item/test_item.js
index baaa21f..b48f93a 100644
--- a/erpnext/crm/doctype/item/test_item.js
+++ b/erpnext/crm/doctype/item/test_item.js
@@ -88,7 +88,33 @@
 				{default_warehouse: "Stores - RB"}
 			]
 		),
-
+		() => frappe.tests.make(
+			"Item", [
+				{item_code: "Test Product 4"},
+				{item_group: "Products"},
+				{is_stock_item: 1},
+				{has_batch_no: 1},
+				{create_new_batch: 1},
+				{uoms:
+					[
+						[
+							{uom:"Unit"},
+							{conversion_factor: 10},
+						]
+					]
+				},
+				{taxes:
+					[
+						[
+							{tax_type:"SGST - "+frappe.get_abbr(frappe.defaults.get_default("Company"))},
+							{tax_rate: 0},
+						]
+					]},
+				{has_serial_no: 1},
+				{standard_rate: 100},
+				{opening_stock: 100},
+			]
+		),
 		() => done()
 	]);
 });
diff --git a/erpnext/selling/doctype/sales_order/test_sales_order.js b/erpnext/selling/doctype/sales_order/test_sales_order.js
index 87f0e96..3eceb89 100644
--- a/erpnext/selling/doctype/sales_order/test_sales_order.js
+++ b/erpnext/selling/doctype/sales_order/test_sales_order.js
@@ -1,59 +1,62 @@
-/* eslint-disable */
-// rename this file from _test_[name] to test_[name] to activate
-// and remove above this line
+QUnit.module('Sales Order');
 
-QUnit.test("test: Sales Order", function (assert) {
-	assert.expect(2);
+QUnit.test("test sales order", function(assert) {
+	assert.expect(8);
 	let done = assert.async();
-	let delivery_date = frappe.datetime.add_days(frappe.defaults.get_default("year_end_date"), 1);
-
 	frappe.run_serially([
-		// insert a new Sales Order
 		() => {
 			return frappe.tests.make('Sales Order', [
-				{customer: "Test Customer 1"},
-				{delivery_date: delivery_date},
-				{order_type: 'Sales'},
+				{customer: 'Test Customer 1'},
 				{items: [
 					[
-						{"item_code": "Test Product 1"},
-						{"qty": 5},
-						{'rate': 100},
-					]]
-				}
-			])
+						{'delivery_date': frappe.datetime.add_days(frappe.defaults.get_default("year_end_date"), 1)},
+						{'qty': 5},
+						{'item_code': 'Test Product 4'},
+						{'uom': 'unit'},
+						{'margin_type': 'Percentage'},
+						{'discount_percentage': 10},
+					]
+				]},
+				{customer_address: 'Test1-Billing'},
+				{shipping_address_name: 'Test1-Shipping'},
+				{contact_person: 'Contact 1-Test Customer 1'},
+				{taxes_and_charges: 'TEST In State GST'},
+				{tc_name: 'Test Term 1'},
+				{terms: 'This is Test'}
+			]);
 		},
 		() => {
-			assert.ok(cur_frm.doc.items[0].delivery_date == delivery_date);
-		},
-		() => frappe.timeout(1),
-		// make SO without delivery date in parent, 
-		// parent delivery date should be set based on final delivery date entered in item
-		() => {
-			return frappe.tests.make('Sales Order', [
-				{customer: "Test Customer 1"},
-				{order_type: 'Sales'},
-				{items: [
-					[
-						{"item_code": "Test Product 1"},
-						{"qty": 5},
-						{'rate': 100},
-						{'delivery_date': delivery_date}
-					],
-					[
-						{"item_code": "Test Product 2"},
-						{"qty": 5},
-						{'rate': 100},
-						{'delivery_date': frappe.datetime.add_days(delivery_date, 5)}
-					]]
-				}
-			])
+			return frappe.tests.set_form_values(cur_frm, [
+				{selling_price_list:'Test-Selling-USD'},
+				{currency: 'USD'},
+				{apply_discount_on:'Grand Total'},
+				{additional_discount_percentage:10}
+			]);
 		},
 		() => cur_frm.save(),
+		() => {
+			// get_item_details
+			assert.ok(cur_frm.doc.items[0].item_name=='Test Product 4', "Item name correct");
+			// get tax details
+			assert.ok(cur_frm.doc.taxes_and_charges=='TEST In State GST', "Tax details correct");
+			// get tax account head details
+			assert.ok(cur_frm.doc.taxes[0].account_head=='CGST - '+frappe.get_abbr(frappe.defaults.get_default('Company')), " Account Head abbr correct");
+			// calculate totals
+			assert.ok(cur_frm.doc.items[0].price_list_rate==1000, "Item 1 price_list_rate");
+			assert.ok(cur_frm.doc.total== 4500, "total correct ");
+			assert.ok(cur_frm.doc.rounded_total== 4414.5, "rounded total correct ");
+
+		},
+		() => cur_frm.print_doc(),
 		() => frappe.timeout(1),
 		() => {
-			assert.ok(cur_frm.doc.delivery_date == frappe.datetime.add_days(delivery_date, 5));
+			assert.ok($('.btn-print-print').is(':visible'), "Print Format Available");
+			assert.ok($(".section-break+ .section-break .column-break:nth-child(1) .data-field:nth-child(1) .value").text().includes("Billing Street 1"), "Print Preview Works As Expected");
 		},
+		() => cur_frm.print_doc(),
+		() => frappe.tests.click_button('Submit'),
+		() => frappe.tests.click_button('Yes'),
+		() => frappe.timeout(0.3),
 		() => done()
 	]);
-});
\ No newline at end of file
+});
diff --git a/erpnext/tests/ui/tests.txt b/erpnext/tests/ui/tests.txt
index a3ab3c4..2abadec 100644
--- a/erpnext/tests/ui/tests.txt
+++ b/erpnext/tests/ui/tests.txt
@@ -8,6 +8,7 @@
 erpnext/selling/doctype/quotation/test_quotation.js
 erpnext/setup/doctype/company/tests/test_company_production.js
 erpnext/crm/doctype/item/test_item.js
+erpnext/selling/doctype/sales_order/test_sales_order.js
 erpnext/manufacturing/doctype/workstation/test_workstation.js
 erpnext/manufacturing/doctype/operation/test_operation.js
 erpnext/manufacturing/doctype/bom/test_bom.js
@@ -40,5 +41,4 @@
 erpnext/schools/doctype/assessment_criteria_group/test_assessment_criteria_group.js
 erpnext/schools/doctype/assessment_criteria/test_assessment_criteria.js
 erpnext/schools/doctype/course/test_course.js
-erpnext/schools/doctype/program/test_program.js
-erpnext/selling/doctype/sales_order/test_sales_order.js
\ No newline at end of file
+erpnext/schools/doctype/program/test_program.js
\ No newline at end of file
