(t *testing.T)
| 2026 | } |
| 2027 | |
| 2028 | func TestReplicatorRevocationsWithStarChannel(t *testing.T) { |
| 2029 | base.RequireNumTestBuckets(t, 2) |
| 2030 | |
| 2031 | base.SetUpTestLogging(t, base.LevelDebug, base.KeyAll) // CBG-1981 |
| 2032 | |
| 2033 | sgrRunner := NewSGRTestRunner(t) |
| 2034 | sgrRunner.Run(func(t *testing.T) { |
| 2035 | // Passive |
| 2036 | _, rt2 := InitScenario(t, nil) |
| 2037 | defer rt2.Close() |
| 2038 | rt2ds := rt2.GetSingleDataStore() |
| 2039 | |
| 2040 | // Active |
| 2041 | rt1 := NewRestTester(t, |
| 2042 | &RestTesterConfig{ |
| 2043 | CustomTestBucket: base.GetTestBucket(t), |
| 2044 | SyncFn: channels.DocChannelsSyncFunction, |
| 2045 | }) |
| 2046 | defer rt1.Close() |
| 2047 | ctx1 := rt1.Context() |
| 2048 | |
| 2049 | // Setup replicator |
| 2050 | srv := httptest.NewServer(rt2.TestPublicHandler()) |
| 2051 | defer srv.Close() |
| 2052 | |
| 2053 | passiveDBURL, err := url.Parse(srv.URL + "/db") |
| 2054 | require.NoError(t, err) |
| 2055 | |
| 2056 | passiveDBURL.User = url.UserPassword("user", RestTesterDefaultUserPassword) |
| 2057 | id := SafeDocumentName(t, t.Name()) |
| 2058 | sgwStats, err := base.SyncGatewayStats.NewDBStats(id, false, false, false, nil, nil) |
| 2059 | require.NoError(t, err) |
| 2060 | dbstats, err := sgwStats.DBReplicatorStats(id) |
| 2061 | require.NoError(t, err) |
| 2062 | |
| 2063 | _ = rt2.PutDoc("docA", `{"channels": ["A"]}`) |
| 2064 | _ = rt2.PutDoc("docAB", `{"channels": ["A","B"]}`) |
| 2065 | _ = rt2.PutDoc("docB", `{"channels": ["B"]}`) |
| 2066 | _ = rt2.PutDoc("docABC", `{"channels": ["A","B", "C"]}`) |
| 2067 | _ = rt2.PutDoc("docC", `{"channels": ["C"]}`) |
| 2068 | rt2.WaitForPendingChanges() |
| 2069 | |
| 2070 | ar, err := db.NewActiveReplicator(ctx1, &db.ActiveReplicatorConfig{ |
| 2071 | ID: id, |
| 2072 | Direction: db.ActiveReplicatorTypePull, |
| 2073 | RemoteDBURL: passiveDBURL, |
| 2074 | ActiveDB: &db.Database{ |
| 2075 | DatabaseContext: rt1.GetDatabase(), |
| 2076 | }, |
| 2077 | Continuous: false, |
| 2078 | PurgeOnRemoval: true, |
| 2079 | ReplicationStatsMap: dbstats, |
| 2080 | CollectionsEnabled: base.TestsUseNamedCollections(), |
| 2081 | SupportedBLIPProtocols: sgrRunner.SupportedSubprotocols, |
| 2082 | }) |
| 2083 | require.NoError(t, err) |
| 2084 | |
| 2085 | resp := rt2.SendAdminRequest("PUT", "/db/_user/user", GetUserPayload(t, "user", RestTesterDefaultUserPassword, "", rt2ds, []string{"*"}, nil)) |
nothing calls this directly
no test coverage detected