Cook the pasta according to package directions until al dente. *Reserve 1 cup of pasta cooking water before draining the noodles!
Place all sauce ingredients (cashews, nutritional yeast, coconut aminos, lemon juice, milk, salt and pepper) in a high speed blender. Blend on hight until smooth and creamy.
Heat oil in a large, deep skillet over medium heat. Add the diced onions and sauté for 5 to 6 minutes until soft and translucent. Add the garlic and sauté 1 minute.
Add the flour to the onion mixture and stir well until no white bits of flour remain.
Pour about ¼ cup (it doesn't have to be exact, but a few splashes is enough) into the onion mixture and whisk until smooth and creamy. There will still be chunks of onion, but there should be no lumps of flour. Be sure to scrape the bottom of the pan and ensure all the flour is incorporated before pouring the rest of the sauce in. Do not skip this step! If you don't whisk out all the lumps now, you won't be able to later.
Pour in the remaining sauce and stir. Bring to a boil, then reduce heat to a low simmer and cook until the sauce is thickened. This should only take a few minutes.
Add the chopped artichokes, spinach and cooked noodles and mix well to combine. If the sauce is too thick, add some of the reserved pasta water, ¼ cup at a time, until the desired consistency is reached.
Serve hot garnished with chopped fresh parsley, if desired.