test: add test cases for `Item Shortage Report`
diff --git a/erpnext/stock/report/item_shortage_report/test_item_shortage_report.py b/erpnext/stock/report/item_shortage_report/test_item_shortage_report.py
new file mode 100644
index 0000000..5884c32
--- /dev/null
+++ b/erpnext/stock/report/item_shortage_report/test_item_shortage_report.py
@@ -0,0 +1,51 @@
+# Copyright (c) 2022, Frappe Technologies Pvt. Ltd. and contributors
+# For license information, please see license.txt
+
+import frappe
+from frappe.tests.utils import FrappeTestCase
+
+from erpnext.selling.doctype.sales_order.test_sales_order import make_sales_order
+from erpnext.stock.doctype.item.test_item import make_item
+from erpnext.stock.report.item_shortage_report.item_shortage_report import (
+	execute as item_shortage_report,
+)
+
+
+class TestItemShortageReport(FrappeTestCase):
+	def test_item_shortage_report(self):
+		item = make_item().name
+		so = make_sales_order(item_code=item)
+
+		reserved_qty, projected_qty = frappe.db.get_value(
+			"Bin",
+			{
+				"item_code": item,
+				"warehouse": so.items[0].warehouse,
+			},
+			["reserved_qty", "projected_qty"],
+		)
+		self.assertEqual(reserved_qty, so.items[0].qty)
+		self.assertEqual(projected_qty, -(so.items[0].qty))
+
+		filters = {
+			"company": so.company,
+		}
+		report_data = item_shortage_report(filters)[1]
+		item_code_list = [row.get("item_code") for row in report_data]
+		self.assertIn(item, item_code_list)
+
+		filters = {
+			"company": so.company,
+			"warehouse": [so.items[0].warehouse],
+		}
+		report_data = item_shortage_report(filters)[1]
+		item_code_list = [row.get("item_code") for row in report_data]
+		self.assertIn(item, item_code_list)
+
+		filters = {
+			"company": so.company,
+			"warehouse": ["Work In Progress - _TC"],
+		}
+		report_data = item_shortage_report(filters)[1]
+		item_code_list = [row.get("item_code") for row in report_data]
+		self.assertNotIn(item, item_code_list)