Heat the olive oil in a large, heavy pot over medium-high heat. When the oil is hot, but not smoking add the Italian sausage.
Cook the sausage for 4-5 minutes until browned, stirring frequently and breaking up any large pieces. Drain excess oil (see notes)
Lower the heat to medium and add the onions, carrots and celery to the pot. Cook for 4-5 minutes until the onions start to soften and are translucent, stirring frequently.
Add the garlic, Italian seasoning and black pepper to the pot, cook for 1 minute, stirring frequently.
Next, add the tomatoes and chicken broth. Stir while gently scraping any bits off the bottom of the pot.
Raise the heat to high and bring the broth to a boil (it will take about 5 minutes). Lower the heat to medium-low, cover the pot and simmer the soup for 15 minutes, stirring occasionally.
Raise the heat to medium and add the pasta. Let the broth come to a boil again. It should happen right away but if it does not, raise the heat a little. Then drop it back to medium once it is boiling.
Cover the pot and cook for 5 minutes. Stir it occasionally to make sure the pasta is not sticking to the bottom.
Still on medium heat, add the cannellini beans and zucchini, stir well and cover the pot. Cook for 10 minutes until the pasta is tender. Stir the soup occasionally, again making sure the pasta is not sticking to the bottom.
Finally, add the spinach to the pot and stir until it starts to wilt. Cover the pot and cook the soup for 3- 5 minutes, stirring occasionally.
Taste and add salt if needed. As a reference we did not add extra to ours.
Serve with parmesan cheese, if desired and enjoy.