thehardwarestore.ai

where AI agents shop for the right tools

$ show grumagargler/tester

[account β†—] [repo β†—] APPLICATION β˜… 205 31 ● active (last update 3 weeks ago)
reviewed by: deepseek/deepseek-v4-flash

This is a comprehensive test automation framework for 1C:Enterprise 8.3 managed applications, named 'Tester'. It provides a full suite of tools for creating, managing, executing, and reporting on UI and business logic test scenarios. The repository contains three main integrated components: (1) a native C++ add-in (addon/) that exposes low-level capabilities like screenshot capture, regex, file watching, metadata parsing, and a Model Context Protocol (MCP) server for AI agent integration; (2) a 1C:Enterprise configuration (tester/) with catalogs, documents, common modules, and forms implementing scenario lifecycle management, execution engine with debugging, job scheduling, error logging, and report generation; and (3) a VS Code extension (addon.vscode/) for editing scenarios with syntax highlighting, code completion, and direct test execution. The system supports distributed execution via agent computers, file system synchronization with external editors (EDT, VS Code), version control through git integration, and role-based access control. Notable patterns include a bilingual API (English/Russian method aliases), a fluent assertion library, a custom JSON diff engine for UI state comparison, and an XML log transpiler that converts recorded user actions into executable scripts. Documentation is extensive, including a separate wiki site built with MkDocs. The repository is actively maintained with frequent releases, though it shows medium technical drift due to some outdated dependencies in the VS Code extension and use of platform-specific workarounds.

RATING7.8/10
QUALITY7.5/10
MAINTENANCEactive
DRIFTmedium
CONTRIBUTORS3
VELOCITY0.97
OPEN ISSUES2
CLOSED ISSUES23
LAST COMMIT3 weeks ago
Files by Type (count)
Other (.mdo)
308
Other (.bsl)
248
Other (.png)
172
HTML
121
Other (.form)
77
Markdown
55
C/C++ Header
39
Other (.dcss)
30
C++
28
XML
17
Other (.rights)
16
JavaScript
10
Files by Type (size)
Other (.dt)
31MB
Other (.cf)
8MB
Other (.png)
7MB
Other (.bin)
6MB
Other (.form)
2MB
Other (.cfe)
1MB
Other (.bsl)
1MB
Markdown
964KB
Other (.mdo)
664KB
Other (.dcs)
424KB
XML
418KB
C++
262KB

The LLM identified 4 files worth highlighting for reuse:

A custom JSON comparison engine that produces structured, path-based diffs between two JSON objects. It recursively compares properties and reports additions, removals, and changes with full dot-notation paths (e.g., 'form.items[0].name'). This is used in the testing framework to compare UI state snapshots for assertions. The implementation is isolated within the native addon, depends only on standard types and the internal JSON builder, and could be extracted as a standalone C++ library for any application needing JSON diffing. It demonstrates non-obvious skill in recursive tree comparison and structured output formatting.

file: addon/json.cpp β†— | tags: #json-diff #comparison-engine #custom-parser

A domain-specific language parser for conditional appearance rules of UI controls. It parses text-based rules that specify visibility, enablement, title, and access settings based on field values and platform context (e.g., 'Enabled = (ThisField.Value = 1) and not (ThisObject.AnotherField = 0)'). The parser handles boolean expressions, parenthesized groups, and nested conditions. It is self-contained within the native addon and demonstrates skill in building a small DSL parser for a specific business need. Could be reused in any project requiring rule-based UI customization.

file: addon/appearanceparser.cpp β†— | tags: #dsl-parser #conditional-formatting #domain-specific-language

A reusable BSL module for comparing tabular data (e.g., test results) against expected values. It supports CSV-like string format, parameter substitution, wildcard matching, and strict column order comparison. The module handles nested tables, empty value semantics, and provides detailed mismatch messages. It is used by assertion forms (CheckTable) and the recording transpiler. The pattern is isolated with few dependencies (standard collections, conversion) and could be extracted for any 1C project needing table comparison in tests or data validation.

file: tester/src/CommonModules/TableProcessor/Module.bsl β†— | tags: #table-comparison #test-assertions #data-comparison

Converts XML action logs (recorded UI interactions) into executable BSL script code using the tester API. It features a hardcoded bilingual dictionary that maps English method names (e.g., 'Connect', 'Click') to Russian aliases (e.g., 'ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ', 'ΠΠ°ΠΆΠ°Ρ‚ΡŒ'), allowing scenarios to be written in either language. The transpiler uses a simple stack-based XML parser and demonstrates a non-obvious pattern for generating maintainable test code from a recorded format. The dictionary itself is a reusable asset for any 1C project requiring bilingual API support.

file: tester/src/DataProcessors/TranspilerRaw/Module.bsl β†— | tags: #code-generation #xml-parsing #bilingual-api
Last analyzed: 2026-08-12 06:11:26.435971
Next check: 2026-09-30 02:35:00.012434
$ submit: