* refactor(http): extract logic into constructRedirectPath
This allows us to easily test our redirect path construction logic where we get
the relative path, the query string and construct a redirect path.
By extracting this from `redirect`, we can easily test this logic in a unit
test.
I did this so we could test some logic where slashes in query strings should be
made human-friendly for users.
* feat(testing): add tests for constructRedirectPath
Co-authored-by: Asher <ash@coder.com>
* Add tests for relativeRoot
* Remove path.posix.join
Since this is for file system paths it feels incorrect to use it on
URL paths as they are different in many ways.
* Rewrite cookie path logic
Before we relied on the client to resolve the base given to it by the
backend against the path.
Instead have the client pass that information along so we can resolve it
on the backend. This means the client has to do less work.
* Do not remove out directory before watch
This is re-used for incremental compilation.
Also remove del since that was the only use (and we can use fs.rmdir in
the future if we need something like this).
* Remove unused function resolveBase