{"id":18700,"library":"quip-test-utils","title":"Quip Live Apps Test Utilities","description":"Testing utilities for Quip Live Apps development. Version 0.1.3 is the initial release with basic testing helpers. This package provides utilities to mock Quip Live Apps environment and write unit tests for Quip Live Apps. It includes helpers for creating test records, simulating user actions, and validating Quip-specific behaviors. Key differentiators include tight integration with Quip Live Apps API and simplified test setup. Currently in early development with likely breaking changes.","status":"active","version":"0.1.3","language":"javascript","source_language":"en","source_url":"https://github.com/quip/quip-apps","tags":["javascript"],"install":[{"cmd":"npm install quip-test-utils","lang":"bash","label":"npm"},{"cmd":"yarn add quip-test-utils","lang":"bash","label":"yarn"},{"cmd":"pnpm add quip-test-utils","lang":"bash","label":"pnpm"}],"dependencies":[],"imports":[{"note":"Package is ESM-only; CommonJS require will not work.","wrong":"const createQuipTestRecord = require('quip-test-utils')","symbol":"createQuipTestRecord","correct":"import { createQuipTestRecord } from 'quip-test-utils'"},{"note":"Function is not a class; wrong casing will cause undefined.","wrong":"import { MockQuipApp } from 'quip-test-utils'","symbol":"mockQuipApp","correct":"import { mockQuipApp } from 'quip-test-utils'"},{"note":"Default export is not provided; named import required.","wrong":"import simulateUserAction from 'quip-test-utils'","symbol":"simulateUserAction","correct":"import { simulateUserAction } from 'quip-test-utils'"},{"note":"Function name uses lowercase 'c' in 'cleanup'; camelCase sensitive.","wrong":"import { cleanUpTestRecords } from 'quip-test-utils'","symbol":"cleanupTestRecords","correct":"import { cleanupTestRecords } from 'quip-test-utils'"}],"quickstart":{"code":"import { createQuipTestRecord, mockQuipApp, simulateUserAction, cleanupTestRecords } from 'quip-test-utils';\n\n// Mock Quip App environment\nmockQuipApp(process.env.QUIP_APP_ID ?? 'test-app-id');\n\n// Create a test record\nconst record = createQuipTestRecord('task', { title: 'Test task', status: 'open' });\n\n// Simulate user action\nsimulateUserAction({ type: 'click', element: record.get('title') });\n\nconsole.log('Record created:', record.getData());\n\n// Clean up after test\ncleanupTestRecords();\n","lang":"typescript","description":"This shows basic setup: mock app environment, create test record, simulate user interaction, and cleanup."},"warnings":[{"fix":"Lock to exact version and monitor changelog for breaking changes.","message":"Version 0.x is unstable; APIs may change without notice.","severity":"breaking","affected_versions":">=0.0.0"},{"fix":"Stay updated with latest release notes.","message":"Deprecation warning in future versions expected as package matures.","severity":"deprecated","affected_versions":">=0.1.0"},{"fix":"Use with test runner that provides isolation between tests.","message":"createQuipTestRecord does not persist records; they are in-memory only.","severity":"gotcha","affected_versions":">=0.1.0"},{"fix":"Do not rely on this for network behavior testing.","message":"simulateUserAction does not trigger real HTTP requests; only local event simulation.","severity":"gotcha","affected_versions":">=0.1.0"}],"env_vars":null,"last_verified":"2026-04-25T00:00:00.000Z","next_check":"2026-07-24T00:00:00.000Z","problems":[{"fix":"Use `import { mockQuipApp } from 'quip-test-utils'`.","cause":"Incorrect import: using default import instead of named.","error":"TypeError: mockQuipApp is not a function"},{"fix":"Run `npm install quip-test-utils --save-dev` or equivalent.","cause":"Package not installed or not in node_modules.","error":"Module not found: Can't resolve 'quip-test-utils' in ..."},{"fix":"Add 'type': 'module' to package.json or use .mjs extension.","cause":"Using ESM import in a CommonJS context without type: module.","error":"SyntaxError: Cannot use import statement outside a module"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}