Howdy! Great question: z-tests are useful insofar as you know the population mean/standard deviation. Many times, we might know the pop mean, but not the std dev. If you don't know the std dev, you have to do a one-sample t-test. If the sample distribution is not normal, then you violate the assumption for t-tests. It doesn't mean you can go back to using a z-score, however, because we're estimating the sample std dev. We have to go for a nonparametric test in this case, so we do not make a Type I error.