From 1c1460ff04000ce70c1e6c481e3a9122b099cbd5 Mon Sep 17 00:00:00 2001 From: Kaj Kowalski Date: Wed, 28 May 2025 14:23:23 +0200 Subject: [PATCH] Refactors main function and enhances test suite Refactors the main function for improved testability by extracting the core logic into a new run function. Updates argument handling and error reporting to use return codes instead of os.Exit. Adds comprehensive test coverage for main functionality, including integration tests and validation against edge cases. Enhances README with updated code coverage and feature improvement lists. Addresses improved maintainability and testability of the application. Bumps version to 0.3.1 --- .gitignore | 3 + README.md | 34 ++-- internal/version/version.go | 2 +- main.go | 26 ++-- main_test.go | 303 ++++++++++++++++++++++++++++++++++++ 5 files changed, 341 insertions(+), 27 deletions(-) diff --git a/.gitignore b/.gitignore index 2861ad0..fa0476d 100644 --- a/.gitignore +++ b/.gitignore @@ -48,9 +48,12 @@ build/ # Test coverage files coverage.out coverage.txt +coverage.html +coverage.* coverage *.cover *.coverprofile +main_coverage # Other common exclusions *.exe diff --git a/README.md b/README.md index 8b20f55..08679b4 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,16 @@ A Go-based parser that converts Articulate Rise e-learning content to various formats including Markdown, HTML, and Word documents. +[![Go version](https://img.shields.io/github/go-mod/go-version/kjanat/articulate-parser?logo=Go&logoColor=white)][gomod] +[![Go Doc](https://godoc.org/github.com/kjanat/articulate-parser?status.svg)][Package documentation] +[![Go Report Card](https://goreportcard.com/badge/github.com/kjanat/articulate-parser)][Go report] +[![Tag](https://img.shields.io/github/v/tag/kjanat/articulate-parser?sort=semver&label=Tag)][Tags] +[![License](https://img.shields.io/github/license/kjanat/articulate-parser?label=License)][MIT License] +[![Last commit](https://img.shields.io/github/last-commit/kjanat/articulate-parser?label=Last%20commit)][Commits] +[![GitHub Issues or Pull Requests](https://img.shields.io/github/issues/kjanat/articulate-parser?label=Issues)][Issues] +[![CI](https://img.shields.io/github/actions/workflow/status/kjanat/articulate-parser/ci.yml?logo=github&label=CI)][Build] +[![Codecov](https://img.shields.io/codecov/c/gh/kjanat/articulate-parser?token=eHhaHY8nut&logo=codecov&logoColor=%23F01F7A&label=Codecov)][Codecov] + ## System Architecture ```mermaid @@ -73,16 +83,6 @@ The system follows **Clean Architecture** principles with clear separation of co - **📤 Export Layer**: Factory pattern for format-specific exporters - **📊 Data Layer**: Domain models representing course structure -[![Go version](https://img.shields.io/github/go-mod/go-version/kjanat/articulate-parser?logo=Go&logoColor=white)][gomod] -[![Go Doc](https://godoc.org/github.com/kjanat/articulate-parser?status.svg)][Package documentation] -[![Go Report Card](https://goreportcard.com/badge/github.com/kjanat/articulate-parser)][Go report] -[![Tag](https://img.shields.io/github/v/tag/kjanat/articulate-parser?sort=semver&label=Tag)][Tags] -[![License](https://img.shields.io/github/license/kjanat/articulate-parser?label=License)][MIT License] -[![Last commit](https://img.shields.io/github/last-commit/kjanat/articulate-parser?label=Last%20commit)][Commits] -[![GitHub Issues or Pull Requests](https://img.shields.io/github/issues/kjanat/articulate-parser?label=Issues)][Issues] -[![CI](https://img.shields.io/github/actions/workflow/status/kjanat/articulate-parser/ci.yml?logo=github&label=CI)][Build] -[![Codecov](https://img.shields.io/codecov/c/gh/kjanat/articulate-parser?token=eHhaHY8nut&logo=codecov&logoColor=%23F01F7A&label=Codecov)][Codecov] - ## Features - Parse Articulate Rise JSON data from URLs or local files @@ -291,7 +291,7 @@ The parser includes error handling for: