MCPcopy
hub / github.com/dunglas/mercure / TestBoltLastEventID

Function TestBoltLastEventID

bolt_test.go:325–360  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

323}
324
325func TestBoltLastEventID(t *testing.T) {
326 t.Parallel()
327
328 path := "test-" + t.Name() + ".db"
329 db, err := bolt.Open(path, 0o600, nil)
330
331 t.Cleanup(func() {
332 _ = os.Remove(path)
333 })
334 require.NoError(t, err)
335
336 require.NoError(t, db.Update(func(tx *bolt.Tx) error {
337 bucket, err := tx.CreateBucketIfNotExists([]byte(defaultBoltBucketName))
338 require.NoError(t, err)
339
340 seq, err := bucket.NextSequence()
341 require.NoError(t, err)
342
343 prefix := make([]byte, 8)
344 binary.BigEndian.PutUint64(prefix, seq)
345
346 // The sequence value is prepended to the update id to create an ordered list
347 key := bytes.Join([][]byte{prefix, []byte("foo")}, []byte{})
348
349 // The DB is append-only
350 bucket.FillPercent = 1
351
352 return bucket.Put(key, []byte("invalid"))
353 }))
354 require.NoError(t, db.Close())
355
356 transport := createBoltTransport(t, 0, 0)
357
358 lastEventID, _, _ := transport.GetSubscribers(t.Context())
359 assert.Equal(t, "foo", lastEventID)
360}

Callers

nothing calls this directly

Calls 5

createBoltTransportFunction · 0.85
RemoveMethod · 0.80
CloseMethod · 0.65
GetSubscribersMethod · 0.65
CleanupMethod · 0.45

Tested by

no test coverage detected