mirror of
				https://github.com/gradle/gradle-build-action.git
				synced 2025-11-04 09:58:56 +08:00 
			
		
		
		
	Move Jest tests from '__tests__' to 'test/jest'
This commit is contained in:
		
							
								
								
									
										95
									
								
								test/jest/cache-reporting.test.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										95
									
								
								test/jest/cache-reporting.test.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,95 @@
 | 
			
		||||
import {CacheEntryListener, CacheListener} from '../../src/cache-reporting'
 | 
			
		||||
 | 
			
		||||
describe('caching report', () => {
 | 
			
		||||
    describe('reports not fully restored', () => {
 | 
			
		||||
        it('with one requested entry report', async () => {
 | 
			
		||||
            const report = new CacheListener()
 | 
			
		||||
            report.entry('foo').markRequested('1', ['2'])
 | 
			
		||||
            report.entry('bar').markRequested('3').markRestored('4', 500)
 | 
			
		||||
            expect(report.fullyRestored).toBe(false)
 | 
			
		||||
        })
 | 
			
		||||
    })
 | 
			
		||||
    describe('reports fully restored', () => {
 | 
			
		||||
        it('when empty', async () => {
 | 
			
		||||
            const report = new CacheListener()
 | 
			
		||||
            expect(report.fullyRestored).toBe(true)
 | 
			
		||||
        })
 | 
			
		||||
        it('with empty entry reports', async () => {
 | 
			
		||||
            const report = new CacheListener()
 | 
			
		||||
            report.entry('foo')
 | 
			
		||||
            report.entry('bar')
 | 
			
		||||
            expect(report.fullyRestored).toBe(true)
 | 
			
		||||
        })
 | 
			
		||||
        it('with restored entry report', async () => {
 | 
			
		||||
            const report = new CacheListener()
 | 
			
		||||
            report.entry('bar').markRequested('3').markRestored('4', 300)
 | 
			
		||||
            expect(report.fullyRestored).toBe(true)
 | 
			
		||||
        })
 | 
			
		||||
        it('with multiple restored entry reportss', async () => {
 | 
			
		||||
            const report = new CacheListener()
 | 
			
		||||
            report.entry('foo').markRestored('4', 3300)
 | 
			
		||||
            report.entry('bar').markRequested('3').markRestored('4', 333)
 | 
			
		||||
            expect(report.fullyRestored).toBe(true)
 | 
			
		||||
        })
 | 
			
		||||
    })
 | 
			
		||||
    describe('can be stringified and rehydrated', () => {
 | 
			
		||||
        it('when empty', async () => {
 | 
			
		||||
            const report = new CacheListener()
 | 
			
		||||
 | 
			
		||||
            const stringRep = report.stringify()
 | 
			
		||||
            const reportClone: CacheListener = CacheListener.rehydrate(stringRep)
 | 
			
		||||
 | 
			
		||||
            expect(reportClone.cacheEntries).toEqual([])
 | 
			
		||||
 | 
			
		||||
            // Can call methods on rehydrated
 | 
			
		||||
            expect(reportClone.entry('foo')).toBeInstanceOf(CacheEntryListener)
 | 
			
		||||
        })
 | 
			
		||||
        it('with entry reports', async () => {
 | 
			
		||||
            const report = new CacheListener()
 | 
			
		||||
            report.entry('foo')
 | 
			
		||||
            report.entry('bar')
 | 
			
		||||
            report.entry('baz')
 | 
			
		||||
 | 
			
		||||
            const stringRep = report.stringify()
 | 
			
		||||
            const reportClone: CacheListener = CacheListener.rehydrate(stringRep)
 | 
			
		||||
 | 
			
		||||
            expect(reportClone.cacheEntries.length).toBe(3)
 | 
			
		||||
            expect(reportClone.cacheEntries[0].entryName).toBe('foo')
 | 
			
		||||
            expect(reportClone.cacheEntries[1].entryName).toBe('bar')
 | 
			
		||||
            expect(reportClone.cacheEntries[2].entryName).toBe('baz')
 | 
			
		||||
 | 
			
		||||
            expect(reportClone.entry('foo')).toBe(reportClone.cacheEntries[0])
 | 
			
		||||
        })
 | 
			
		||||
        it('with rehydrated entry report', async () => {
 | 
			
		||||
            const report = new CacheListener()
 | 
			
		||||
            const entryReport = report.entry('foo')
 | 
			
		||||
            entryReport.markRequested('1', ['2', '3'])
 | 
			
		||||
            entryReport.markSaved('4', 100)
 | 
			
		||||
 | 
			
		||||
            const stringRep = report.stringify()
 | 
			
		||||
            const reportClone: CacheListener = CacheListener.rehydrate(stringRep)
 | 
			
		||||
            const entryClone = reportClone.entry('foo')
 | 
			
		||||
 | 
			
		||||
            expect(entryClone.requestedKey).toBe('1')
 | 
			
		||||
            expect(entryClone.requestedRestoreKeys).toEqual(['2', '3'])
 | 
			
		||||
            expect(entryClone.savedKey).toBe('4')
 | 
			
		||||
        })
 | 
			
		||||
        it('with live entry report', async () => {
 | 
			
		||||
            const report = new CacheListener()
 | 
			
		||||
            const entryReport = report.entry('foo')
 | 
			
		||||
            entryReport.markRequested('1', ['2', '3'])
 | 
			
		||||
 | 
			
		||||
            const stringRep = report.stringify()
 | 
			
		||||
            const reportClone: CacheListener = CacheListener.rehydrate(stringRep)
 | 
			
		||||
            const entryClone = reportClone.entry('foo')
 | 
			
		||||
 | 
			
		||||
            // Check type and call method on rehydrated entry report
 | 
			
		||||
            expect(entryClone).toBeInstanceOf(CacheEntryListener)
 | 
			
		||||
            entryClone.markSaved('4', 100)
 | 
			
		||||
 | 
			
		||||
            expect(entryClone.requestedKey).toBe('1')
 | 
			
		||||
            expect(entryClone.requestedRestoreKeys).toEqual(['2', '3'])
 | 
			
		||||
            expect(entryClone.savedKey).toBe('4')
 | 
			
		||||
        })
 | 
			
		||||
    })
 | 
			
		||||
})
 | 
			
		||||
							
								
								
									
										20
									
								
								test/jest/cache-utils.test.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								test/jest/cache-utils.test.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,20 @@
 | 
			
		||||
import * as cacheUtils from '../../src/cache-utils'
 | 
			
		||||
 | 
			
		||||
describe('cacheUtils-utils', () => {
 | 
			
		||||
    describe('can hash', () => {
 | 
			
		||||
        it('a string', async () => {
 | 
			
		||||
            const hash = cacheUtils.hashStrings(['foo'])
 | 
			
		||||
            expect(hash).toBe('acbd18db4cc2f85cedef654fccc4a4d8')
 | 
			
		||||
        })
 | 
			
		||||
        it('multiple strings', async () => {
 | 
			
		||||
            const hash = cacheUtils.hashStrings(['foo', 'bar', 'baz'])
 | 
			
		||||
            expect(hash).toBe('6df23dc03f9b54cc38a0fc1483df6e21')
 | 
			
		||||
        })
 | 
			
		||||
        it('normalized filenames', async () => {
 | 
			
		||||
            const fileNames = ['/foo/bar/baz.zip', '../boo.html']
 | 
			
		||||
            const posixHash = cacheUtils.hashFileNames(fileNames)
 | 
			
		||||
            const windowsHash = cacheUtils.hashFileNames(fileNames)
 | 
			
		||||
            expect(posixHash).toBe(windowsHash)
 | 
			
		||||
        })
 | 
			
		||||
    })
 | 
			
		||||
})
 | 
			
		||||
		Reference in New Issue
	
	Block a user