Approach so far:
The SpecHelper sets up an example App type which should (theoretically)
be enough to get some fake requests and responses going, as in any
yesod-test-based suite.
The spec then tries to build an example plugin and make assertions on
how it dispatches. This is currently falling down on subsite-related
type errors (see commented attempts).
Another potential direction is to define the YesodAuth instance for App
to specify authPlugins built using the library. With that, we might be
able to create specs using yesod-test that exercise aspects of the
plugins in an indirect way, but enough to make useful assertions.
and avoid authenticate 1.3.2.6 which gave the following strange error:
...
Building authenticate-1.3.2.6...
Preprocessing library authenticate-1.3.2.6...
[1 of 9] Compiling OpenId2.XRDS ( OpenId2/XRDS.hs, dist/dist-sandbox-a1429708/build/OpenId2/XRDS.o )
[2 of 9] Compiling Web.Authenticate.OpenId.Providers ( Web/Authenticate/OpenId/Providers.hs, dist/dist-sandbox-a1429708/build/Web/Authenticate/OpenId/Providers.o )
[3 of 9] Compiling Web.Authenticate.BrowserId ( Web/Authenticate/BrowserId.hs, dist/dist-sandbox-a1429708/build/Web/Authenticate/BrowserId.o )
Web/Authenticate/BrowserId.hs:15:22:
Module ‘Data.Conduit’ does not export ‘MonadBaseControl’
Web/Authenticate/BrowserId.hs:15:40:
Module ‘Data.Conduit’ does not export ‘MonadResource’
Failed to install authenticate-1.3.2.6
Housekeeping:
* Use newer http-conduit (Request m becomes Request)
* Increase upper bound on aeson
* Fix whitespace, remove unfinished function
* Add type signatures and some comments
* Remove unused imports
Fixes:
* ByteString needs an orphan JSON instance so AccessToken can have one.
I'm not sure if there's a way around this.
* redirect takes a Text, not a ByteString
* dispatch for "callback" should handle setting the credentials
Additions
* oauth2Learn for authenticating against learn.thoughtbot.com