How do I determine if a path is a fifo? [duplicate]

I have some bash shell code that runs

if [[ ! -s "$1" ]]

to determine if $1 is a non-empty file

This test fails if $1 is a fifo, even though the fifo has data in it ready to be read.

Is there a bash shell test I can run to determine if a path is a fifo?