github.com/tilt-dev/tilt@v0.36.0/web/src/ClearLogs.test.tsx (about) 1 import { render, screen } from "@testing-library/react" 2 import userEvent from "@testing-library/user-event" 3 import React from "react" 4 import ClearLogs from "./ClearLogs" 5 import { logLinesToString } from "./logs" 6 import LogStore, { LogStoreProvider } from "./LogStore" 7 import { appendLinesForManifestAndSpan } from "./testlogs" 8 import { ResourceName } from "./types" 9 10 describe("ClearLogs", () => { 11 const createPopulatedLogStore = (): LogStore => { 12 const logStore = new LogStore() 13 appendLinesForManifestAndSpan(logStore, "", "", [ 14 "global 1\n", 15 "global 2\n", 16 ]) 17 appendLinesForManifestAndSpan(logStore, "vigoda", "build:m1:1", [ 18 "m1:1 build line 1\n", 19 ]) 20 appendLinesForManifestAndSpan(logStore, "vigoda", "pod:m1-abc123", [ 21 "m1:1 runtime line 1\n", 22 ]) 23 appendLinesForManifestAndSpan(logStore, "manifest2", "build:m2", [ 24 "m2 build line 1\n", 25 ]) 26 appendLinesForManifestAndSpan(logStore, "vigoda", "build:m1:2", [ 27 "m1:2 build line 1\n", 28 "m1:2 build line 2\n", 29 ]) 30 appendLinesForManifestAndSpan(logStore, "manifest2", "pod:m2-def456", [ 31 "m2 runtime line 1\n", 32 ]) 33 return logStore 34 } 35 36 it("clears all resources", () => { 37 const logStore = createPopulatedLogStore() 38 render( 39 <LogStoreProvider value={logStore}> 40 <ClearLogs resourceName={ResourceName.all} /> 41 </LogStoreProvider> 42 ) 43 44 userEvent.click(screen.getByRole("button")) 45 46 expect(logStore.spans).toEqual({}) 47 expect(logStore.allLog()).toHaveLength(0) 48 }) 49 50 it("clears a specific resource", () => { 51 const logStore = createPopulatedLogStore() 52 render( 53 <LogStoreProvider value={logStore}> 54 <ClearLogs resourceName={"vigoda"} /> 55 </LogStoreProvider> 56 ) 57 58 userEvent.click(screen.getByRole("button")) 59 60 expect(Object.keys(logStore.spans).sort()).toEqual([ 61 "_", 62 "build:m2", 63 "pod:m2-def456", 64 ]) 65 66 expect(logLinesToString(logStore.allLog(), false)).toEqual( 67 "global 1\nglobal 2\nm2 build line 1\nm2 runtime line 1" 68 ) 69 }) 70 })