Drizzle about a tablespoon of olive oil into a pot over medium heat. When it’s warm, drop in the diced carrots, onion and celery and season with salt and pepper. Cover and cook a few minutes until the onions are translucent and the carrots are tender.
Blend in the tomato paste and cook over low heat 2-3 minutes then pour in the wine, scraping any brown flavor bits off the bottom of the pot then add the crushed tomatoes, zucchini chicken stock, pasta and bay leaf and season again with salt and pepper.
Open and drain two cans of Great Northern Beans. If you an immersion (more later ⇓) add both cans of beans and the pesto to the pot. If you don't have an immersion blender, add one can and mash the other can using a potato masher or fork then add to the pot. Cover and cook while you prep the spinach.
Cut the stems off the spinach leaves then give it all a rough chop. Add the spinach to the pot and cook over low heat, covered 15-20 minutes or until the pasta is tender.
Using an immersion blender in one area of the pot, give the soup several pulses. If you don’t have an immersion blender, transfer about 2 cups of soup to a regular blender. When it cools to room temp, puree it and return it to the pot.
Fold in the parsley and serve with parmesan cheese for topping.