Extracted `@request.env['devise.mapping'] = Devise.mappings[:user]` and `Rails.application.env_config['devise.mapping'] = Devise.mappings[:user]`
in our tests into the helper method `set_devise_mapping`
- The `migration:path-pg` build was previously failing when the Authentiq
feature spec was enabled by placing Authentiq configuration in the `test`
section of `gitlab.yml`
- The `migration:path-pg` task checks out an old revision of the
codebase (`v8.14.10`) and runs a `schema:load`. It then checks out the commit
under test, and runs `db:migrate`, to verify that migrations run without
errors.
- The problem here is that `v8.14.10` does not have the Authentiq module
installed, but is run with the `gitlab.yml` for `master`, which would contain
the `Authentiq` configuration in the `test` section.
- The solution was to use the `v8.14.10` `gitlab.yml` for the `schema:load`,
rather than the `gitlab.yml` from master.
- Change double quotes to single quotes.
- Why is `OmniAuth.config.full_host` being reassigned in the integration test?
- Use `map` over `map!` to avoid `dup` in the `gitlab:info` rake task
- Other minor changes
- I tried to get this to work by stubbing out portions of the config within the
test. This didn't work as expected because Devise/Omniauth loaded before the
stub could run, and the stubbed config was ignored.
- I attempted to fix this by reloading Devise/Omniauth after stubbing the
config. This successfully got Devise to load the stubbed providers, but failed
while trying to access a route such as `user_gitlab_omniauth_authorize_path`.
- I spent a while trying to figure this out (even trying
`Rails.application.reload_routes!`), but nothing seemed to work.
- I settled for adding this config directly to `gitlab.yml` rather than go down
this path any further.
- There was previously a test for `saml` login in `login_spec`, but this didn't
seem to be passing. A lot of things didn't seem right here, and I suspect that
this test hasn't been running. I'll investigate this further.
- It took almost a whole working day to figure out this line:
OmniAuth.config.full_host = ->(request) { request['REQUEST_URI'].sub(request['REQUEST_PATH'], '') }
As always, it's obvious in retrospect, but it took some digging to figure out
tests were failing and returning 404s during the callback phase.
- Test all OAuth providers - github, twitter, bitbucket, gitlab, google, and facebook