Download packages/cli/src/commands/gemma/setup.test.ts from SaylorTwift/gemini-cli: direct link, hf CLI and curl.
- Browser
- Download file 1.83 kB
-
https://huggingface.co/SaylorTwift/gemini-cli/resolve/main/packages/cli/src/commands/gemma/setup.test.ts
- Command line
-
hf download hf://SaylorTwift/gemini-cli/packages/cli/src/commands/gemma/setup.test.ts
-
curl -L -o setup.test.ts https://huggingface.co/SaylorTwift/gemini-cli/resolve/main/packages/cli/src/commands/gemma/setup.test.ts
1.83 kB
| /** | |
| * @license | |
| * Copyright 2026 Google LLC | |
| * SPDX-License-Identifier: Apache-2.0 | |
| */ | |
| import fs from 'node:fs'; | |
| import os from 'node:os'; | |
| import path from 'node:path'; | |
| import { afterEach, describe, expect, it } from 'vitest'; | |
| import { PLATFORM_BINARY_MAP, PLATFORM_BINARY_SHA256 } from './constants.js'; | |
| import { computeFileSha256, verifyFileSha256 } from './setup.js'; | |
| describe('gemma setup checksum helpers', () => { | |
| const tempFiles: string[] = []; | |
| afterEach(async () => { | |
| await Promise.all( | |
| tempFiles | |
| .splice(0) | |
| .map((filePath) => fs.promises.rm(filePath, { force: true })), | |
| ); | |
| }); | |
| it('has a pinned checksum for every supported LiteRT binary', () => { | |
| expect(Object.keys(PLATFORM_BINARY_SHA256).sort()).toEqual( | |
| Object.values(PLATFORM_BINARY_MAP).sort(), | |
| ); | |
| }); | |
| it('computes the sha256 for a downloaded file', async () => { | |
| const filePath = path.join( | |
| os.tmpdir(), | |
| `gemma-setup-${Date.now()}-${Math.random().toString(36).slice(2)}`, | |
| ); | |
| tempFiles.push(filePath); | |
| await fs.promises.writeFile(filePath, 'hello world', 'utf-8'); | |
| await expect(computeFileSha256(filePath)).resolves.toBe( | |
| 'b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9', | |
| ); | |
| }); | |
| it('verifies whether a file matches the expected sha256', async () => { | |
| const filePath = path.join( | |
| os.tmpdir(), | |
| `gemma-setup-${Date.now()}-${Math.random().toString(36).slice(2)}`, | |
| ); | |
| tempFiles.push(filePath); | |
| await fs.promises.writeFile(filePath, 'hello world', 'utf-8'); | |
| await expect( | |
| verifyFileSha256( | |
| filePath, | |
| 'b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9', | |
| ), | |
| ).resolves.toBe(true); | |
| await expect(verifyFileSha256(filePath, 'deadbeef')).resolves.toBe(false); | |
| }); | |
| }); | |