My code is something like:
function Controller(dep0, dep1) {
dep0.call();
dep1.call();
};
The test is something like:
function test() {
dep0Mock = mock.create();
controller = new Controller(dep0Mock, dep1Real);
};
For deciding if a test is a unit test or a functional test, I think I would consider the test's intent and how it is going to be used. I would look especially to practical differences caused by not mocking this dependency. Should this test be run frequently, or can it wait until after a new build is released to test? Does this test run quickly, even with the dependency? Is the dependency at least 99.9% reliable? Unit tests should be easy to run frequently, and they should very rarely fail unless there is a real bug. A unit test that fails due to a dependency is a problem.
However, this also depends on company culture, and I would recommend asking a more senior testing in your own company (if anyone is available). A good developer who has been there for a while might also have an opinion.
A unit test is a type of a functional test.
I am not sure what distinction you are trying to make, or why it is important to you.