I’m rebuilding an app to use Phoenix 1.3, one of the changes is moving the web
directory into lib
, I like this one a lot for a few reasons, among others (at least in my head) it got us a “real” directory to module structure mapping.
Now I got to refactoring tests and have to add the Web
namespace to modules that are not in a web directory, like test/support/conn_case.ex
.
I get the reasoning - conn and channel belong to web whereas data does not (test/support/data_case.ex
is now MyApp.DataCase without Web
), but this feels somewhat arbitrary.
For me the most obvious way to name things would be to have a Test.Support.ConnCase
, Test.Support.DataCase
etc.
It’s not only tests, under the web dir we “lose” all sub-directories (views, controllers etc). I know I can just do what I want, but I also want to stay as “idiomatic” as possible, so does anyone have insights as to why we have this occasional namespace / directory structure mapping and not a constant one?