Heat oil in a skillet over medium-low heat. Add onions; cook and stir until soft and translucent, about 10 minutes. Stir in cilantro, garlic, cinnamon, coriander, and cumin; cook until fragrant, about 3 minutes. Pour in tomato sauce. Reduce heat to low; simmer sauce until flavors combine, about 10 minutes.
Stir beans into sauce. Cover skillet and simmer until beans are heated through, about 10 minutes. Season with salt and pepper. Cool to room temperature before serving, about 30 minutes.