Is there a way to know if a discount is going to be applied on a product?
Discounts can only be determined if the item is added to the cart. This is what separates a discount from a sale. 

A discount is actually not matched with the product but the line item as it sits on the order (with all of its context like the order's customer, etc)

You can determine if something is on sale with variant.onSale returning true or false.