[ui-test] added test for bill_of_materials (#10063)
* temporary commit for switching branches
* [ui-tests] added bill_of_materials test
* fixed minor codacy problems
* added minor requested changes
diff --git a/erpnext/manufacturing/doctype/bom/test_bom.js b/erpnext/manufacturing/doctype/bom/test_bom.js
new file mode 100644
index 0000000..8187ef3
--- /dev/null
+++ b/erpnext/manufacturing/doctype/bom/test_bom.js
@@ -0,0 +1,62 @@
+QUnit.test("test: item", function (assert) {
+ assert.expect(1);
+ let done = assert.async();
+
+ frappe.run_serially([
+ // test item creation
+ () => frappe.set_route("List", "Item"),
+
+ // Create a BOM for a laptop
+ () => frappe.tests.make(
+ "BOM", [
+ {item: "Laptop"},
+ {quantity: 1},
+ {with_operations: 1},
+ {operations: [
+ [
+ {operation: "Assemble CPU"},
+ {time_in_mins: 60},
+ ],
+ [
+ {operation: "Assemble Keyboard"},
+ {time_in_mins: 30},
+ ],
+ [
+ {operation: "Assemble Screen"},
+ {time_in_mins: 30},
+ ]
+ ]},
+ {scrap_items: [
+ [
+ {item_code: "Scrap item"}
+ ]
+ ]},
+ {items: [
+ [
+ {item_code: "CPU"},
+ {qty: 1}
+ ],
+ [
+ {item_code: "Keyboard"},
+ {qty: 1}
+ ],
+ [
+ {item_code: "Screen"},
+ {qty: 1}
+ ]
+ ]},
+ ]
+ ),
+ () => cur_frm.savesubmit(),
+ () => frappe.timeout(1),
+ () => frappe.click_button('Yes'),
+ () => frappe.timeout(1),
+
+ () => {
+ assert.ok(cur_frm.doc.operating_cost + cur_frm.doc.raw_material_cost -
+ cur_frm.doc.scrap_material_cost == cur_frm.doc.total_cost, 'Total_Cost calculated correctly');
+ },
+
+ () => done()
+ ]);
+});
\ No newline at end of file
diff --git a/erpnext/tests/ui/tests.txt b/erpnext/tests/ui/tests.txt
index f7e4956..047ee9c 100644
--- a/erpnext/tests/ui/tests.txt
+++ b/erpnext/tests/ui/tests.txt
@@ -8,3 +8,4 @@
erpnext/manufacturing/doctype/operation/test_operation.js
erpnext/hr/doctype/holiday_list/test_holiday_list.js
erpnext/hr/doctype/branch/test_branch.js
+erpnext/manufacturing/doctype/bom/test_bom.js
\ No newline at end of file