@@ -10,6 +10,7 @@ import (
1010 "testing"
1111
1212 "github.com/google/go-cmp/cmp"
13+ "github.com/hashicorp/go-hclog"
1314 "github.com/hashicorp/terraform-plugin-log/internal/loggertest"
1415 "github.com/hashicorp/terraform-plugin-log/tflog"
1516)
@@ -1858,3 +1859,203 @@ func TestMaskLogStrings(t *testing.T) {
18581859 })
18591860 }
18601861}
1862+
1863+ func TestIsTrace (t * testing.T ) {
1864+ t .Parallel ()
1865+
1866+ testCases := map [string ]struct {
1867+ level hclog.Level
1868+ expected bool
1869+ }{
1870+ "root-level-trace" : {level : hclog .Trace , expected : true },
1871+ "root-level-debug" : {level : hclog .Debug , expected : false },
1872+ "root-level-info" : {level : hclog .Info , expected : false },
1873+ "root-level-warn" : {level : hclog .Warn , expected : false },
1874+ "root-level-error" : {level : hclog .Error , expected : false },
1875+ }
1876+
1877+ for name , testCase := range testCases {
1878+ t .Run (name , func (t * testing.T ) {
1879+ t .Parallel ()
1880+
1881+ var outputBuffer bytes.Buffer
1882+
1883+ ctx := context .Background ()
1884+ ctx = loggertest .ProviderRootWithLevel (ctx , & outputBuffer , testCase .level )
1885+
1886+ got := tflog .IsTrace (ctx )
1887+
1888+ if got != testCase .expected {
1889+ t .Errorf ("expected %v, got %v" , testCase .expected , got )
1890+ }
1891+ })
1892+ }
1893+
1894+ t .Run ("no-logger" , func (t * testing.T ) {
1895+ t .Parallel ()
1896+
1897+ if got := tflog .IsTrace (context .Background ()); got != false {
1898+ t .Errorf ("expected false with no logger in context, got %v" , got )
1899+ }
1900+ })
1901+ }
1902+
1903+ func TestIsDebug (t * testing.T ) {
1904+ t .Parallel ()
1905+
1906+ testCases := map [string ]struct {
1907+ level hclog.Level
1908+ expected bool
1909+ }{
1910+ "root-level-trace" : {level : hclog .Trace , expected : true },
1911+ "root-level-debug" : {level : hclog .Debug , expected : true },
1912+ "root-level-info" : {level : hclog .Info , expected : false },
1913+ "root-level-warn" : {level : hclog .Warn , expected : false },
1914+ "root-level-error" : {level : hclog .Error , expected : false },
1915+ }
1916+
1917+ for name , testCase := range testCases {
1918+ t .Run (name , func (t * testing.T ) {
1919+ t .Parallel ()
1920+
1921+ var outputBuffer bytes.Buffer
1922+
1923+ ctx := context .Background ()
1924+ ctx = loggertest .ProviderRootWithLevel (ctx , & outputBuffer , testCase .level )
1925+
1926+ got := tflog .IsDebug (ctx )
1927+
1928+ if got != testCase .expected {
1929+ t .Errorf ("expected %v, got %v" , testCase .expected , got )
1930+ }
1931+ })
1932+ }
1933+
1934+ t .Run ("no-logger" , func (t * testing.T ) {
1935+ t .Parallel ()
1936+
1937+ if got := tflog .IsDebug (context .Background ()); got != false {
1938+ t .Errorf ("expected false with no logger in context, got %v" , got )
1939+ }
1940+ })
1941+ }
1942+
1943+ func TestIsInfo (t * testing.T ) {
1944+ t .Parallel ()
1945+
1946+ testCases := map [string ]struct {
1947+ level hclog.Level
1948+ expected bool
1949+ }{
1950+ "root-level-trace" : {level : hclog .Trace , expected : true },
1951+ "root-level-debug" : {level : hclog .Debug , expected : true },
1952+ "root-level-info" : {level : hclog .Info , expected : true },
1953+ "root-level-warn" : {level : hclog .Warn , expected : false },
1954+ "root-level-error" : {level : hclog .Error , expected : false },
1955+ }
1956+
1957+ for name , testCase := range testCases {
1958+ t .Run (name , func (t * testing.T ) {
1959+ t .Parallel ()
1960+
1961+ var outputBuffer bytes.Buffer
1962+
1963+ ctx := context .Background ()
1964+ ctx = loggertest .ProviderRootWithLevel (ctx , & outputBuffer , testCase .level )
1965+
1966+ got := tflog .IsInfo (ctx )
1967+
1968+ if got != testCase .expected {
1969+ t .Errorf ("expected %v, got %v" , testCase .expected , got )
1970+ }
1971+ })
1972+ }
1973+
1974+ t .Run ("no-logger" , func (t * testing.T ) {
1975+ t .Parallel ()
1976+
1977+ if got := tflog .IsInfo (context .Background ()); got != false {
1978+ t .Errorf ("expected false with no logger in context, got %v" , got )
1979+ }
1980+ })
1981+ }
1982+
1983+ func TestIsWarn (t * testing.T ) {
1984+ t .Parallel ()
1985+
1986+ testCases := map [string ]struct {
1987+ level hclog.Level
1988+ expected bool
1989+ }{
1990+ "root-level-trace" : {level : hclog .Trace , expected : true },
1991+ "root-level-debug" : {level : hclog .Debug , expected : true },
1992+ "root-level-info" : {level : hclog .Info , expected : true },
1993+ "root-level-warn" : {level : hclog .Warn , expected : true },
1994+ "root-level-error" : {level : hclog .Error , expected : false },
1995+ }
1996+
1997+ for name , testCase := range testCases {
1998+ t .Run (name , func (t * testing.T ) {
1999+ t .Parallel ()
2000+
2001+ var outputBuffer bytes.Buffer
2002+
2003+ ctx := context .Background ()
2004+ ctx = loggertest .ProviderRootWithLevel (ctx , & outputBuffer , testCase .level )
2005+
2006+ got := tflog .IsWarn (ctx )
2007+
2008+ if got != testCase .expected {
2009+ t .Errorf ("expected %v, got %v" , testCase .expected , got )
2010+ }
2011+ })
2012+ }
2013+
2014+ t .Run ("no-logger" , func (t * testing.T ) {
2015+ t .Parallel ()
2016+
2017+ if got := tflog .IsWarn (context .Background ()); got != false {
2018+ t .Errorf ("expected false with no logger in context, got %v" , got )
2019+ }
2020+ })
2021+ }
2022+
2023+ func TestIsError (t * testing.T ) {
2024+ t .Parallel ()
2025+
2026+ testCases := map [string ]struct {
2027+ level hclog.Level
2028+ expected bool
2029+ }{
2030+ "root-level-trace" : {level : hclog .Trace , expected : true },
2031+ "root-level-debug" : {level : hclog .Debug , expected : true },
2032+ "root-level-info" : {level : hclog .Info , expected : true },
2033+ "root-level-warn" : {level : hclog .Warn , expected : true },
2034+ "root-level-error" : {level : hclog .Error , expected : true },
2035+ }
2036+
2037+ for name , testCase := range testCases {
2038+ t .Run (name , func (t * testing.T ) {
2039+ t .Parallel ()
2040+
2041+ var outputBuffer bytes.Buffer
2042+
2043+ ctx := context .Background ()
2044+ ctx = loggertest .ProviderRootWithLevel (ctx , & outputBuffer , testCase .level )
2045+
2046+ got := tflog .IsError (ctx )
2047+
2048+ if got != testCase .expected {
2049+ t .Errorf ("expected %v, got %v" , testCase .expected , got )
2050+ }
2051+ })
2052+ }
2053+
2054+ t .Run ("no-logger" , func (t * testing.T ) {
2055+ t .Parallel ()
2056+
2057+ if got := tflog .IsError (context .Background ()); got != false {
2058+ t .Errorf ("expected false with no logger in context, got %v" , got )
2059+ }
2060+ })
2061+ }
0 commit comments