(t *testing.T)
| 2124 | } |
| 2125 | |
| 2126 | func TestReplicatorRevocationsFromZero(t *testing.T) { |
| 2127 | defer db.SuspendSequenceBatching()() |
| 2128 | |
| 2129 | base.RequireNumTestBuckets(t, 2) |
| 2130 | |
| 2131 | sgrRunner := NewSGRTestRunner(t) |
| 2132 | sgrRunner.Run(func(t *testing.T) { |
| 2133 | // Passive |
| 2134 | _, rt2 := InitScenario(t, nil) |
| 2135 | defer rt2.Close() |
| 2136 | rt2ds := rt2.GetSingleDataStore() |
| 2137 | |
| 2138 | // Active |
| 2139 | rt1 := NewRestTester(t, |
| 2140 | &RestTesterConfig{ |
| 2141 | CustomTestBucket: base.GetTestBucket(t), |
| 2142 | SyncFn: channels.DocChannelsSyncFunction, |
| 2143 | }) |
| 2144 | defer rt1.Close() |
| 2145 | ctx1 := rt1.Context() |
| 2146 | |
| 2147 | resp := rt2.SendAdminRequest("PUT", "/db/_user/user", GetUserPayload(t, "user", "letmein", "", rt2ds, []string{"A", "B"}, nil)) |
| 2148 | RequireStatus(t, resp, http.StatusOK) |
| 2149 | |
| 2150 | // Setup replicator |
| 2151 | srv := httptest.NewServer(rt2.TestPublicHandler()) |
| 2152 | defer srv.Close() |
| 2153 | |
| 2154 | passiveDBURL, err := url.Parse(srv.URL + "/db") |
| 2155 | require.NoError(t, err) |
| 2156 | |
| 2157 | passiveDBURL.User = url.UserPassword("user", "letmein") |
| 2158 | id := SafeDocumentName(t, t.Name()) |
| 2159 | sgwStats, err := base.SyncGatewayStats.NewDBStats(id, false, false, false, nil, nil) |
| 2160 | require.NoError(t, err) |
| 2161 | dbstats, err := sgwStats.DBReplicatorStats(id) |
| 2162 | require.NoError(t, err) |
| 2163 | |
| 2164 | activeReplCfg := &db.ActiveReplicatorConfig{ |
| 2165 | ID: id, |
| 2166 | Direction: db.ActiveReplicatorTypePull, |
| 2167 | RemoteDBURL: passiveDBURL, |
| 2168 | ActiveDB: &db.Database{ |
| 2169 | DatabaseContext: rt1.GetDatabase(), |
| 2170 | }, |
| 2171 | Continuous: false, |
| 2172 | PurgeOnRemoval: true, |
| 2173 | ReplicationStatsMap: dbstats, |
| 2174 | CollectionsEnabled: base.TestsUseNamedCollections(), |
| 2175 | SupportedBLIPProtocols: sgrRunner.SupportedSubprotocols, |
| 2176 | } |
| 2177 | |
| 2178 | ar, err := db.NewActiveReplicator(ctx1, activeReplCfg) |
| 2179 | require.NoError(t, err) |
| 2180 | |
| 2181 | _ = rt2.PutDoc("docA", `{"channels": ["A"]}`) |
| 2182 | _ = rt2.PutDoc("docA1", `{"channels": ["A"]}`) |
| 2183 | _ = rt2.PutDoc("docA2", `{"channels": ["A"]}`) |
nothing calls this directly
no test coverage detected