I tend to look at the testing level from the behavior's perspective.
A unit test asserts a single behavior. I give function a wrong argument, it throws an error.
An integration test assertions a combination of multiple behaviors. I type into an input, then click "Submit", then check the result.