hopsoft / turbo_boost-commands

Commands to help you build robust reactive applications with Rails & Hotwire.
MIT License
322 stars 20 forks source link

ci: Bootstrap initial AppMap archive #130

Closed hopsoft closed 9 months ago

github-actions[bot] commented 9 months ago

AppMap configuration report

Success! Your project has been successfully configured to record AppMaps when you run your tests.

Continue with AppMap Setup >>


The following sections contain detailed information about the AppMap integration with your project.

AppMap data sources

In GitHub Actions and other CI systems, AppMaps are created by recording test cases. Here's how the AppMaps in this project were created: | Number of AppMaps | Type of recording | | --- | --- | | 42 | minitest |

Code recording settings

Your _appmap.yml_ configuration file specifies all the code that you want AppMap to instrument and record. By default, sub-modules of any requested code are recorded as well. In this project, the packages specified in _appmap.yml_ are: ```yaml - path: app - path: lib ``` By applying this configuration to your ruby project, AppMap has recorded the following packages and modules: `app/views`

Web service API profile

When you record AppMaps that include HTTP server requests, AppMap automatically generates OpenAPI definitions based on the observed data. **43%** of the AppMaps in this project contain **at least one** HTTP server request. **43%** of the AppMaps in this project contain **more than one** HTTP server request. Here's **a summary of the web service routes** that are provided by this project: `/assets` `/basic_command` `/tests` `/tests/method` `/tests/{id}` And here are the different content types served by the API: | Response Content Type | Number of Routes | | --- | --- | As you change your code and tests, AppMap will automatically update the OpenAPI definitions. You'll see a summary of the REST API changes in each pull request.

SQL profile

When your code makes a SQL query, AppMap records the SQL query in detail. It even parses the queries to figure out which tables your app is using, and how it's using them. **90%** of the AppMaps in this project contain **at least one** SQL query. **90%** of the AppMaps in this project contain **more than one** SQL query. Here are the SQL tables that are present in the observed queries: `sqlite_master` `sqlite_temp_master` `users`

Large AppMaps

Some tests can produce large AppMaps, because they exercise longer or highly repeated code paths. AppMap runtime code review is optimized for AppMaps that are less than 10 MB in size. You may want to consider disabling AppMap for tests that produce large AppMaps, since they can slow down your CI job and they are hard to analyze. Also, note that AppMaps greater than 50 MB in size will not be analyzed at all. You can disable recording of a test case by adding a code comment or annotation to the test case file. Learn how by visiting the [reference documentation for `appmap-ruby`](https://appmap.io/docs/reference/appmap-ruby.html). Here are the largest AppMaps that are greater than 1 MB: | Size | Location | Test name | AppMap path | | --- | --- | --- | --- | | 3.98 MB | test/system/tests/drivers/window_test.rb:27 | Drivers_window command that ALLOWS the rails controller action to perform | tmp/appmap/minitest/Drivers_window_command_that_ALLOWS_the_rails_controller_action_to_perform.appmap.json | | 3.24 MB | test/system/basic_commands/decrement_no_frame_test.rb:23 | Decrement_no_frame decrement 3 times | tmp/appmap/minitest/Decrement_no_frame_decrement_3_times.appmap.json | | 2.3 MB | test/system/basic_commands/increment_frame_test.rb:23 | Increment_frame increment 3 times | tmp/appmap/minitest/Increment_frame_increment_3_times.appmap.json | | 2.3 MB | test/system/basic_commands/increment_no_frame_test.rb:23 | Increment_no_frame increment 3 times | tmp/appmap/minitest/Increment_no_frame_increment_3_times.appmap.json | | 2.3 MB | test/system/basic_commands/decrement_frame_test.rb:23 | Decrement_frame decrement 3 times | tmp/appmap/minitest/Decrement_frame_decrement_3_times.appmap.json | | 2.29 MB | test/system/tests/drivers/frame_test.rb:27 | Drivers_frame command that ALLOWS the rails controller action to perform | tmp/appmap/minitest/Drivers_frame_command_that_ALLOWS_the_rails_controller_action_to_perform.appmap.json | | 2.29 MB | test/system/tests/drivers/method_test.rb:27 | Drivers_method command that ALLOWS the rails controller action to perform | tmp/appmap/minitest/Drivers_method_command_that_ALLOWS_the_rails_controller_action_to_perform.appmap.json | | 2.25 MB | test/system/tests/drivers/form_test.rb:8 | Drivers_form command that PREVENTS the rails controller action from performing | tmp/appmap/minitest/Drivers_form_command_that_PREVENTS_the_rails_controller_action_from_performing.appmap.json | | 2.22 MB | test/system/tests/drivers/window_test.rb:8 | Drivers_window command that PREVENTS the rails controller action from performing | tmp/appmap/minitest/Drivers_window_command_that_PREVENTS_the_rails_controller_action_from_performing.appmap.json | | 2.19 MB | test/system/tests/drivers/method_test.rb:8 | Drivers_method command that PREVENTS the rails controller action from performing | tmp/appmap/minitest/Drivers_method_command_that_PREVENTS_the_rails_controller_action_from_performing.appmap.json | | 2.18 MB | test/system/tests/drivers/frame_test.rb:8 | Drivers_frame command that PREVENTS the rails controller action from performing | tmp/appmap/minitest/Drivers_frame_command_that_PREVENTS_the_rails_controller_action_from_performing.appmap.json | | 2.13 MB | test/system/tests/drivers/form_test.rb:27 | Drivers_form command that ALLOWS the rails controller action to perform | tmp/appmap/minitest/Drivers_form_command_that_ALLOWS_the_rails_controller_action_to_perform.appmap.json | | 1.87 MB | test/system/basic_commands/decrement_no_frame_test.rb:8 | Decrement_no_frame decrement once | tmp/appmap/minitest/Decrement_no_frame_decrement_once.appmap.json | | 1.87 MB | test/system/basic_commands/increment_frame_test.rb:8 | Increment_frame increment once | tmp/appmap/minitest/Increment_frame_increment_once.appmap.json | | 1.87 MB | test/system/basic_commands/increment_no_frame_test.rb:8 | Increment_no_frame increment once | tmp/appmap/minitest/Increment_no_frame_increment_once.appmap.json | | 1.86 MB | test/system/basic_commands/decrement_frame_test.rb:8 | Decrement_frame decrement once | tmp/appmap/minitest/Decrement_frame_decrement_once.appmap.json | | 1.68 MB | test/system/turbo_boost_globals_test.rb:6 | Turbo_boost_globals turbo boost commands loaded and configured | tmp/appmap/minitest/Turbo_boost_globals_turbo_boost_commands_loaded_and_configured.appmap.json | | 1.66 MB | test/system/turbo_boost_globals_test.rb:25 | Turbo_boost_globals turbo boost state | tmp/appmap/minitest/Turbo_boost_globals_turbo_boost_state.appmap.json |

Frequently recorded functions

The AppMap configuration file _appmap.yml_ specifies which functions to record. Some functions may be called very frequently, adding little to the understandability of the code while adding a lot of overhead to the AppMap recording process. Note that some functions are automatically added to the recording by the AppMap agent. For example, the AppMap agent automatically records functions that are relevant to detecting security flaws and performance problems. If you disable recording of these functions, then some problems may become undetectable. You can disable recording of a class or function by updating the _appmap.yml_ configuration file. Learn how by visiting the [reference documentation for `appmap-ruby`](https://appmap.io/docs/reference/appmap-ruby.html). Here are some of the most frequently recorded functions in this project: | Number of occurrences | Function name | Source location | | --- | --- | --- | | 5482 | String#unpack1 | <internal:pack>:280 | | 5092 | JSON::Ext::Parser#parse | JSON::Ext::Parser#parse | | 4044 | Logger::LogDevice#write | /opt/hostedtoolcache/Ruby/3.0.6/x64/lib/ruby/3.0.0/logger/log_device.rb:31 | | 3615 | ActionView::Resolver#find_all | vendor/bundle/ruby/3.0.0/gems/actionview-7.1.3.2/lib/action_view/template/resolver.rb:63 | | 3236 | Array#pack | <internal:pack>:133 | | 2309 | String#unpack | <internal:pack>:256 | | 2199 | JSON::Ext::Generator::State#generate | JSON::Ext::Generator::State#generate | | 1548 | ActiveSupport::Callbacks::CallbackSequence#invoke_before | vendor/bundle/ruby/3.0.0/gems/activesupport-7.1.3.2/lib/active_support/callbacks.rb:597 | | 1548 | ActiveSupport::Callbacks::CallbackSequence#invoke_after | vendor/bundle/ruby/3.0.0/gems/activesupport-7.1.3.2/lib/active_support/callbacks.rb:601 |

Learn more

To learn more about AppMap, visit appmap.io/docs.

github-actions[bot] commented 9 months ago

AppMap project summary

AppMap runtime code review scans the AppMaps for security flaws, performance problems, and code anti-patterns. When you use AppMap runtime code review on a pull request, only the new problems and resolved problems are shown in the report.

AppMap didn't detect any flaws or problems in the runtime code review of your project.

Note that AppMap runtime code review is optimized for projects that use SQL databases, serve HTTP requests, and make HTTP client requests to other services.

If your project doesn't do any of these things, then AppMap runtime code review will be primarily useful for:

github-actions[bot] commented 9 months ago

AppMap runtime code review

Summary Status
Failed tests :warning: 4 failed
New AppMaps :zero: No new AppMaps

:warning: Note Because 4 tests failed, AppMap is showing an abbreviated analysis to help you get them working. Once all tests are passing, all report sections will be available.

⚠️ Failed tests

test/system/basic_commands/reset_frame_test.rb:12

[`test/system/basic_commands/reset_frame_test.rb:12`](https://github.com/hopsoft/turbo_boost-commands/blob/404983543d70f6be8f687fa16480ce29070ad107/test/system/basic_commands/reset_frame_test.rb#L12) failed with error: ``` Playwright dialog handling not working yet ``` The error occurred at [`test/system/basic_commands/reset_frame_test.rb:13`](https://github.com/hopsoft/turbo_boost-commands/blob/404983543d70f6be8f687fa16480ce29070ad107/test/system/basic_commands/reset_frame_test.rb#L13): ```ruby 4: 5: class ResetFrameTest < ApplicationSystemTestCase 6: PARENT_SELECTOR = "#basic_command-turbo-frame" 7: 8: def accept_dialod(dialog) 9: dialog.accept 10: end 11: 12: test "increment once then reset and accept confirm" do > 13: skip "Playwright dialog handling not working yet" 14: page.goto basic_command_url 15: user = User.last 16: 17: assert_equal 0, user.count 18: assert_equal "0000", page.wait_for_selector("code[role='counter']").inner_text 19: 20: trigger = page.wait_for_selector("[data-turbo-command='IncrementCountCommand']") 21: trigger.click 22: wait_for_detach trigger 23: ``` [View AppMap of this test »](https://getappmap.com/github_artifact?owner=hopsoft&repo=turbo_boost-commands&run_id=8106739344&base_revision=3587feb9407ec5fa84a351f013ba41be7736248a&head_revision=404983543d70f6be8f687fa16480ce29070ad107&path=head%2Fminitest%2FReset_frame_increment_once_then_reset_and_accept_confirm.appmap.json)


test/system/basic_commands/reset_frame_test.rb:36

[`test/system/basic_commands/reset_frame_test.rb:36`](https://github.com/hopsoft/turbo_boost-commands/blob/404983543d70f6be8f687fa16480ce29070ad107/test/system/basic_commands/reset_frame_test.rb#L36) failed with error: ``` Playwright dialog handling not working yet ``` The error occurred at [`test/system/basic_commands/reset_frame_test.rb:37`](https://github.com/hopsoft/turbo_boost-commands/blob/404983543d70f6be8f687fa16480ce29070ad107/test/system/basic_commands/reset_frame_test.rb#L37): ```ruby 28: trigger = page.wait_for_selector("[data-turbo-command='ResetCountCommand']") 29: trigger.click 30: wait_for_detach trigger 31: 32: assert_equal 0, user.reload.count 33: assert_equal "0000", page.wait_for_selector("code[role='counter']").inner_text 34: end 35: 36: test "increment once then reset and dismiss confirm" do > 37: skip "Playwright dialog handling not working yet" 38: page.goto basic_command_url 39: user = User.last 40: 41: assert_equal 0, user.count 42: assert_equal "0000", page.wait_for_selector("code[role='counter']").inner_text 43: 44: trigger = page.wait_for_selector("[data-turbo-command='IncrementCountCommand']") 45: trigger.click 46: wait_for_detach trigger 47: ``` [View AppMap of this test »](https://getappmap.com/github_artifact?owner=hopsoft&repo=turbo_boost-commands&run_id=8106739344&base_revision=3587feb9407ec5fa84a351f013ba41be7736248a&head_revision=404983543d70f6be8f687fa16480ce29070ad107&path=head%2Fminitest%2FReset_frame_increment_once_then_reset_and_dismiss_confirm.appmap.json)


test/system/basic_commands/reset_no_frame_test.rb:8

[`test/system/basic_commands/reset_no_frame_test.rb:8`](https://github.com/hopsoft/turbo_boost-commands/blob/404983543d70f6be8f687fa16480ce29070ad107/test/system/basic_commands/reset_no_frame_test.rb#L8) failed with error: ``` Playwright dialog handling not working yet ``` The error occurred at [`test/system/basic_commands/reset_no_frame_test.rb:9`](https://github.com/hopsoft/turbo_boost-commands/blob/404983543d70f6be8f687fa16480ce29070ad107/test/system/basic_commands/reset_no_frame_test.rb#L9): ```ruby 1: # frozen_string_literal: true 2: 3: require "application_system_test_case" 4: 5: class ResetNoFrameTest < ApplicationSystemTestCase 6: PARENT_SELECTOR = "#basic_command-no-frame" 7: 8: test "increment once then reset and accept confirm" do > 9: skip "Playwright dialog handling not working yet" 10: page.goto basic_command_url 11: user = User.last 12: 13: assert_equal 0, user.count 14: assert_equal "0000", page.wait_for_selector("code[role='counter']").inner_text 15: 16: trigger = page.wait_for_selector("[data-turbo-command='IncrementCountCommand']") 17: trigger.click 18: wait_for_detach trigger 19: ``` [View AppMap of this test »](https://getappmap.com/github_artifact?owner=hopsoft&repo=turbo_boost-commands&run_id=8106739344&base_revision=3587feb9407ec5fa84a351f013ba41be7736248a&head_revision=404983543d70f6be8f687fa16480ce29070ad107&path=head%2Fminitest%2FReset_no_frame_increment_once_then_reset_and_accept_confirm.appmap.json)


test/system/basic_commands/reset_no_frame_test.rb:32

[`test/system/basic_commands/reset_no_frame_test.rb:32`](https://github.com/hopsoft/turbo_boost-commands/blob/404983543d70f6be8f687fa16480ce29070ad107/test/system/basic_commands/reset_no_frame_test.rb#L32) failed with error: ``` Playwright dialog handling not working yet ``` The error occurred at [`test/system/basic_commands/reset_no_frame_test.rb:33`](https://github.com/hopsoft/turbo_boost-commands/blob/404983543d70f6be8f687fa16480ce29070ad107/test/system/basic_commands/reset_no_frame_test.rb#L33): ```ruby 24: trigger = page.wait_for_selector("[data-turbo-command='ResetCountCommand']") 25: trigger.click 26: wait_for_detach trigger 27: 28: assert_equal 2, user.reload.count 29: assert_equal "0002", page.wait_for_selector("code[role='counter']").inner_text 30: end 31: 32: test "increment once then reset and dismiss confirm" do > 33: skip "Playwright dialog handling not working yet" 34: page.goto basic_command_url 35: user = User.last 36: 37: assert_equal 0, user.count 38: assert_equal "0000", page.wait_for_selector("code[role='counter']").inner_text 39: 40: trigger = page.wait_for_selector("[data-turbo-command='IncrementCountCommand']") 41: trigger.click 42: wait_for_detach trigger 43: ``` [View AppMap of this test »](https://getappmap.com/github_artifact?owner=hopsoft&repo=turbo_boost-commands&run_id=8106739344&base_revision=3587feb9407ec5fa84a351f013ba41be7736248a&head_revision=404983543d70f6be8f687fa16480ce29070ad107&path=head%2Fminitest%2FReset_no_frame_increment_once_then_reset_and_dismiss_confirm.appmap.json)