func TestContextReaderSuccess(t *testing.T) { ctx := storemock.NewContextService(scope.Option{}, func(ms *storemock.Storage) { ms.MockStore = func() (*store.Store, error) { return store.NewStore( &store.TableStore{StoreID: 6, Code: dbr.NewNullString("de"), WebsiteID: 1, GroupID: 1, Name: "Germany", SortOrder: 10, IsActive: true}, &store.TableWebsite{WebsiteID: 1, Code: dbr.NewNullString("euro"), Name: dbr.NewNullString("Europe"), SortOrder: 0, DefaultGroupID: 1, IsDefault: dbr.NewNullBool(true)}, &store.TableGroup{GroupID: 1, WebsiteID: 1, Name: "DACH Group", RootCategoryID: 2, DefaultStoreID: 6}, ) } }, ) haveMr, s, err := store.FromContextReader(ctx) assert.NoError(t, err) assert.Exactly(t, int64(6), s.StoreID()) s2, err2 := haveMr.Store() assert.NoError(t, err2) assert.Exactly(t, int64(6), s2.StoreID()) }
func init() { middlewareConfigReader = config.NewMockReader( config.WithMockValues(config.MockPV{ config.MockPathScopeDefault(store.PathRedirectToBase): 1, config.MockPathScopeStore(1, store.PathSecureInFrontend): true, config.MockPathScopeStore(1, store.PathUnsecureBaseURL): "http://www.corestore.io/", config.MockPathScopeStore(1, store.PathSecureBaseURL): "https://www.corestore.io/", }), ) middlewareCtxStoreService = storemock.NewContextService( scope.Option{}, func(ms *storemock.Storage) { ms.MockStore = func() (*store.Store, error) { return store.NewStore( &store.TableStore{StoreID: 1, Code: dbr.NewNullString("de"), WebsiteID: 1, GroupID: 1, Name: "Germany", SortOrder: 10, IsActive: true}, &store.TableWebsite{WebsiteID: 1, Code: dbr.NewNullString("euro"), Name: dbr.NewNullString("Europe"), SortOrder: 0, DefaultGroupID: 1, IsDefault: dbr.NewNullBool(true)}, &store.TableGroup{GroupID: 1, WebsiteID: 1, Name: "DACH Group", RootCategoryID: 2, DefaultStoreID: 2}, store.SetStoreConfig(middlewareConfigReader), ) } }, ) }
assert.NoError(t, err) return nil }) countryHandler := s.WithIsCountryAllowedByIP()(finalHandler) rec := httptest.NewRecorder() req, err := http.NewRequest("GET", "http://corestore.io", nil) assert.NoError(t, err) assert.EqualError(t, countryHandler.ServeHTTPContext(context.Background(), rec, req), store.ErrContextServiceNotFound.Error()) } var managerStoreSimpleTest = storemock.NewContextService(scope.Option{}, func(ms *storemock.Storage) { ms.MockStore = func() (*store.Store, error) { return store.NewStore( &store.TableStore{StoreID: 1, Code: dbr.NewNullString("de"), WebsiteID: 1, GroupID: 1, Name: "Germany", SortOrder: 10, IsActive: true}, &store.TableWebsite{WebsiteID: 1, Code: dbr.NewNullString("euro"), Name: dbr.NewNullString("Europe"), SortOrder: 0, DefaultGroupID: 1, IsDefault: dbr.NewNullBool(true)}, &store.TableGroup{GroupID: 1, WebsiteID: 1, Name: "DACH Group", RootCategoryID: 2, DefaultStoreID: 2}, ) } }) func ipErrorFinalHandler(t *testing.T) ctxhttp.Handler { return ctxhttp.HandlerFunc(func(ctx context.Context, w http.ResponseWriter, r *http.Request) error { ipc, err, ok := geoip.FromContextCountry(ctx) assert.Nil(t, ipc) assert.True(t, ok) assert.EqualError(t, err, geoip.ErrCannotGetRemoteAddr.Error()) return nil }) }