Coat the bottom of a large pot with the oil and place it over medium heat. Give the oil a minute to heat up, then add the onion. Sweat the onion for about 5 minutes, until it starts to soften. Stir in the minced garlic and cook it with the onion for about a minute, stirring constantly, until it becomes very fragrant.
Stir in the wine. Bring it to a simmer, then lower the heat and let it cook until the volume has been reduced by about half, about 4 minutes.
Stir in the cannellini beans, diced tomatoes, tomato sauce, and broth. Raise the heat and bring the mixture to a boil, then reduce it to a low simmer. Let the mixture simmer for about 20 minutes, stirring occasionally, until the sauce has thickened a bit. You can add more broth if it becomes too thick at any point.
Stir in the olives, spinach, and capers. Let the stew simmer for about 2 minutes longer, until the spinach has wilted.
Remove the pot from heat. Stir in the basil, lemon juice, and zest. Season the stew with salt and pepper to taste.
Ladle into bowls and serve.