checkoff 0.243.0 → 0.244.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. checksums.yaml +4 -4
  2. data/checkoff.gemspec +39 -22
  3. data/lib/checkoff/attachments.rb +9 -9
  4. data/lib/checkoff/cli.rb +28 -16
  5. data/lib/checkoff/clients.rb +2 -0
  6. data/lib/checkoff/custom_fields.rb +5 -8
  7. data/lib/checkoff/events.rb +0 -2
  8. data/lib/checkoff/internal/asana_event_enrichment.rb +6 -4
  9. data/lib/checkoff/internal/asana_event_filter.rb +0 -3
  10. data/lib/checkoff/internal/config_loader.rb +1 -1
  11. data/lib/checkoff/internal/logging.rb +2 -0
  12. data/lib/checkoff/internal/project_hashes.rb +0 -1
  13. data/lib/checkoff/internal/project_timing.rb +0 -5
  14. data/lib/checkoff/internal/search_url/custom_field_param_converter.rb +6 -5
  15. data/lib/checkoff/internal/search_url/custom_field_variant.rb +0 -1
  16. data/lib/checkoff/internal/search_url/date_param_converter.rb +2 -5
  17. data/lib/checkoff/internal/search_url/parser.rb +4 -0
  18. data/lib/checkoff/internal/search_url/results_merger.rb +1 -0
  19. data/lib/checkoff/internal/search_url/simple_param_converter.rb +2 -4
  20. data/lib/checkoff/internal/selector_classes/common.rb +19 -1
  21. data/lib/checkoff/internal/selector_classes/function_evaluator.rb +1 -1
  22. data/lib/checkoff/internal/selector_classes/project.rb +8 -0
  23. data/lib/checkoff/internal/selector_classes/section.rb +2 -2
  24. data/lib/checkoff/internal/selector_classes/task/function_evaluator.rb +9 -0
  25. data/lib/checkoff/internal/selector_classes/task.rb +28 -27
  26. data/lib/checkoff/internal/selector_evaluator.rb +2 -0
  27. data/lib/checkoff/internal/task_hashes.rb +0 -3
  28. data/lib/checkoff/internal/task_timing.rb +4 -6
  29. data/lib/checkoff/internal/thread_local.rb +1 -1
  30. data/lib/checkoff/monkeypatches/resource_marshalling.rb +0 -2
  31. data/lib/checkoff/my_tasks.rb +2 -1
  32. data/lib/checkoff/portfolios.rb +1 -0
  33. data/lib/checkoff/projects.rb +5 -5
  34. data/lib/checkoff/resources.rb +0 -2
  35. data/lib/checkoff/section_selectors.rb +0 -1
  36. data/lib/checkoff/sections.rb +18 -14
  37. data/lib/checkoff/subtasks.rb +1 -1
  38. data/lib/checkoff/tags.rb +2 -4
  39. data/lib/checkoff/task_searches.rb +2 -8
  40. data/lib/checkoff/task_selectors.rb +2 -3
  41. data/lib/checkoff/tasks.rb +18 -11
  42. data/lib/checkoff/timelines.rb +12 -6
  43. data/lib/checkoff/timing.rb +5 -8
  44. data/lib/checkoff/version.rb +1 -1
  45. data/lib/checkoff/workspaces.rb +5 -4
  46. data/rbi/checkoff.rbi +618 -483
  47. data/sig/checkoff.rbs +574 -481
  48. metadata +1 -1
data/rbi/checkoff.rbi CHANGED
@@ -75,7 +75,7 @@ module Overcommit
75
75
  end
76
76
 
77
77
  module Checkoff
78
- VERSION = '0.243.0'
78
+ VERSION = '0.244.0'
79
79
 
80
80
  class Attachments
81
81
  include Logging
@@ -2424,6 +2424,15 @@ module Checkoff
2424
2424
  end
2425
2425
  def initialize(selector:, tasks:, timelines:, custom_fields:, **_kwargs); end
2426
2426
 
2427
+ sig { returns(T.untyped) }
2428
+ attr_reader :tasks
2429
+
2430
+ sig { returns(T.untyped) }
2431
+ attr_reader :timelines
2432
+
2433
+ sig { returns(T.untyped) }
2434
+ attr_reader :custom_fields
2435
+
2427
2436
  sig { returns(T.untyped) }
2428
2437
  attr_reader :selector
2429
2438
  end
@@ -2433,7 +2442,7 @@ end
2433
2442
  # typed: ignore
2434
2443
  # Command-line and gem client for Asana (unofficial)
2435
2444
  module Checkoff
2436
- VERSION = T.let('0.243.0', T.untyped)
2445
+ VERSION = T.let('0.244.0', T.untyped)
2437
2446
 
2438
2447
  # Move tasks from one place to another
2439
2448
  class MvSubcommand
@@ -2513,7 +2522,7 @@ module Checkoff
2513
2522
  # _@param_ `from_project_name`
2514
2523
  #
2515
2524
  # _@param_ `from_section_name`
2516
- sig { params(from_workspace_name: String, from_project_name: T.any(String, Symbol), from_section_name: T.any(String, Symbol)).returns(T::Enumerable[Asana::Resources::Task]) }
2525
+ sig { params(from_workspace_name: T.any(String, Symbol), from_project_name: T.any(String, Symbol), from_section_name: T.nilable(T.any(String, Symbol))).returns(T::Enumerable[Asana::Resources::Task]) }
2517
2526
  def fetch_tasks(from_workspace_name, from_project_name, from_section_name); end
2518
2527
 
2519
2528
  sig { void }
@@ -2596,19 +2605,15 @@ module Checkoff
2596
2605
  def run; end
2597
2606
 
2598
2607
  # _@param_ `project_name`
2599
- sig { params(project_name: String).returns(T.any(String, Symbol)) }
2608
+ sig { params(project_name: T.any(String, Symbol)).returns(T.any(String, Symbol)) }
2600
2609
  def validate_and_assign_project_name(project_name); end
2601
2610
 
2602
- # @sg-ignore
2603
- #
2604
2611
  # _@param_ `workspace`
2605
2612
  #
2606
2613
  # _@param_ `project`
2607
2614
  sig { params(workspace: T.any(String, Symbol), project: T.any(String, Symbol)).returns(String) }
2608
2615
  def run_on_project(workspace, project); end
2609
2616
 
2610
- # @sg-ignore
2611
- #
2612
2617
  # _@param_ `workspace`
2613
2618
  #
2614
2619
  # _@param_ `project`
@@ -2617,8 +2622,6 @@ module Checkoff
2617
2622
  sig { params(workspace: T.any(String, Symbol), project: T.any(String, Symbol), section: T.nilable(T.any(String, Symbol))).returns(String) }
2618
2623
  def run_on_section(workspace, project, section); end
2619
2624
 
2620
- # @sg-ignore
2621
- #
2622
2625
  # _@param_ `workspace`
2623
2626
  #
2624
2627
  # _@param_ `project`
@@ -2782,6 +2785,8 @@ module Checkoff
2782
2785
  def tasks_by_tag_gid(workspace_name, tag_gid, only_uncompleted: true, extra_fields: []); end
2783
2786
 
2784
2787
  # sord warn - Asana::Resources::Tag wasn't able to be resolved to a constant in this project
2788
+ # @sg-ignore
2789
+ #
2785
2790
  # _@param_ `workspace_name`
2786
2791
  #
2787
2792
  # _@param_ `tag_name`
@@ -2789,16 +2794,12 @@ module Checkoff
2789
2794
  def tag_or_raise(workspace_name, tag_name); end
2790
2795
 
2791
2796
  # sord warn - Asana::Resources::Tag wasn't able to be resolved to a constant in this project
2792
- # @sg-ignore
2793
- #
2794
2797
  # _@param_ `workspace_name`
2795
2798
  #
2796
2799
  # _@param_ `tag_name`
2797
2800
  sig { params(workspace_name: String, tag_name: String).returns(T.nilable(Asana::Resources::Tag)) }
2798
2801
  def tag(workspace_name, tag_name); end
2799
2802
 
2800
- # @sg-ignore
2801
- #
2802
2803
  # _@param_ `options`
2803
2804
  sig { params(options: T::Hash[Symbol, Object]).returns(T::Hash[Symbol, Object]) }
2804
2805
  def build_params(options); end
@@ -2911,8 +2912,6 @@ module Checkoff
2911
2912
  # sord warn - Asana::Resources::Task wasn't able to be resolved to a constant in this project
2912
2913
  # Pull a specific task by name
2913
2914
  #
2914
- # @sg-ignore
2915
- #
2916
2915
  # _@param_ `workspace_name`
2917
2916
  #
2918
2917
  # _@param_ `project_name`
@@ -2926,7 +2925,7 @@ module Checkoff
2926
2925
  # _@param_ `extra_fields`
2927
2926
  sig do
2928
2927
  params(
2929
- workspace_name: String,
2928
+ workspace_name: T.any(String, Symbol),
2930
2929
  project_name: T.any(String, Symbol),
2931
2930
  task_name: String,
2932
2931
  section_name: T.nilable(T.any(String, Symbol)),
@@ -2936,8 +2935,6 @@ module Checkoff
2936
2935
  end
2937
2936
  def task(workspace_name, project_name, task_name, section_name: :unspecified, only_uncompleted: true, extra_fields: []); end
2938
2937
 
2939
- # @sg-ignore
2940
- #
2941
2938
  # _@param_ `workspace_name`
2942
2939
  #
2943
2940
  # _@param_ `project_name`
@@ -2947,7 +2944,7 @@ module Checkoff
2947
2944
  # _@param_ `task_name`
2948
2945
  sig do
2949
2946
  params(
2950
- workspace_name: String,
2947
+ workspace_name: T.any(String, Symbol),
2951
2948
  project_name: T.any(String, Symbol),
2952
2949
  section_name: T.nilable(T.any(String, Symbol)),
2953
2950
  task_name: String
@@ -2969,6 +2966,8 @@ module Checkoff
2969
2966
  # sord warn - Asana::Resources::Task wasn't able to be resolved to a constant in this project
2970
2967
  # Add a task
2971
2968
  #
2969
+ # @sg-ignore
2970
+ #
2972
2971
  # _@param_ `name`
2973
2972
  #
2974
2973
  # _@param_ `workspace_gid`
@@ -2989,6 +2988,7 @@ module Checkoff
2989
2988
  # sord warn - Asana::Resources::Task wasn't able to be resolved to a constant in this project
2990
2989
  # True if any of the task's dependencies are marked incomplete
2991
2990
  #
2991
+ # @sg-ignore
2992
2992
  # Include 'dependencies.gid' in extra_fields of task passed in.
2993
2993
  #
2994
2994
  # _@param_ `task`
@@ -3027,6 +3027,8 @@ module Checkoff
3027
3027
  # sord warn - Asana::Resources::Task wasn't able to be resolved to a constant in this project
3028
3028
  # True if the task is in a project which is in the given portfolio
3029
3029
  #
3030
+ # @sg-ignore
3031
+ #
3030
3032
  # _@param_ `task`
3031
3033
  #
3032
3034
  # _@param_ `portfolio_name`
@@ -3067,7 +3069,7 @@ module Checkoff
3067
3069
  # _@param_ `extra_fields`
3068
3070
  sig do
3069
3071
  params(
3070
- workspace_name: String,
3072
+ workspace_name: T.any(String, Symbol),
3071
3073
  project_name: T.any(String, Symbol),
3072
3074
  only_uncompleted: T::Boolean,
3073
3075
  extra_fields: T::Array[String],
@@ -3106,6 +3108,7 @@ module Checkoff
3106
3108
  sig { params(message: T.nilable(Object), block: T.untyped).void }
3107
3109
  def finer(message = nil, &block); end
3108
3110
 
3111
+ # @sg-ignore
3109
3112
  sig { returns(Symbol) }
3110
3113
  def log_level; end
3111
3114
 
@@ -3213,6 +3216,7 @@ module Checkoff
3213
3216
  sig { params(message: T.nilable(Object), block: T.untyped).void }
3214
3217
  def finer(message = nil, &block); end
3215
3218
 
3219
+ # @sg-ignore
3216
3220
  sig { returns(Symbol) }
3217
3221
  def log_level; end
3218
3222
 
@@ -3313,6 +3317,8 @@ module Checkoff
3313
3317
  sig { params(num_days: Integer).returns(Time) }
3314
3318
  def n_days_from_now(num_days); end
3315
3319
 
3320
+ # @sg-ignore
3321
+ #
3316
3322
  # _@param_ `num_days`
3317
3323
  sig { params(num_days: Integer).returns(Date) }
3318
3324
  def n_days_from_today(num_days); end
@@ -3359,6 +3365,7 @@ module Checkoff
3359
3365
  sig { params(message: T.nilable(Object), block: T.untyped).void }
3360
3366
  def finer(message = nil, &block); end
3361
3367
 
3368
+ # @sg-ignore
3362
3369
  sig { returns(Symbol) }
3363
3370
  def log_level; end
3364
3371
  end
@@ -3418,7 +3425,7 @@ module Checkoff
3418
3425
  def tasks_by_section_for_my_tasks(project, only_uncompleted: true, extra_fields: []); end
3419
3426
 
3420
3427
  # _@param_ `name`
3421
- sig { params(name: String).returns(T.nilable(String)) }
3428
+ sig { params(name: T.nilable(String)).returns(T.nilable(String)) }
3422
3429
  def section_key(name); end
3423
3430
 
3424
3431
  # sord warn - Asana::Resources::Task wasn't able to be resolved to a constant in this project
@@ -3507,16 +3514,18 @@ module Checkoff
3507
3514
  # _@param_ `project_name` — - :my_tasks or a project name
3508
3515
  #
3509
3516
  # _@param_ `extra_fields`
3510
- sig { params(workspace_name: String, project_name: T.any(String, Symbol), extra_fields: T::Array[String]).returns(T.nilable(Asana::Resources::Project)) }
3517
+ sig { params(workspace_name: T.any(String, Symbol), project_name: T.any(String, Symbol), extra_fields: T::Array[String]).returns(T.nilable(Asana::Resources::Project)) }
3511
3518
  def project(workspace_name, project_name, extra_fields: []); end
3512
3519
 
3513
3520
  # sord warn - Asana::Resources::Project wasn't able to be resolved to a constant in this project
3521
+ # @sg-ignore
3522
+ #
3514
3523
  # _@param_ `workspace_name`
3515
3524
  #
3516
3525
  # _@param_ `project_name` — - :my_tasks or a project name
3517
3526
  #
3518
3527
  # _@param_ `extra_fields`
3519
- sig { params(workspace_name: String, project_name: T.any(String, Symbol), extra_fields: T::Array[String]).returns(Asana::Resources::Project) }
3528
+ sig { params(workspace_name: T.any(String, Symbol), project_name: T.any(String, Symbol), extra_fields: T::Array[String]).returns(Asana::Resources::Project) }
3520
3529
  def project_or_raise(workspace_name, project_name, extra_fields: []); end
3521
3530
 
3522
3531
  # sord warn - Asana::Resources::Project wasn't able to be resolved to a constant in this project
@@ -3561,7 +3570,7 @@ module Checkoff
3561
3570
  # _@param_ `workspace_name`
3562
3571
  #
3563
3572
  # _@param_ `extra_fields`
3564
- sig { params(workspace_name: String, extra_fields: T::Array[String]).returns(T::Enumerable[Asana::Resources::Project]) }
3573
+ sig { params(workspace_name: T.any(String, Symbol), extra_fields: T::Array[String]).returns(T::Enumerable[Asana::Resources::Project]) }
3565
3574
  def projects_by_workspace_name(workspace_name, extra_fields: []); end
3566
3575
 
3567
3576
  # sord warn - Asana::Resources::Project wasn't able to be resolved to a constant in this project
@@ -3603,7 +3612,7 @@ module Checkoff
3603
3612
 
3604
3613
  # sord warn - Asana::Resources::Project wasn't able to be resolved to a constant in this project
3605
3614
  # _@param_ `workspace_name`
3606
- sig { params(workspace_name: String).returns(Asana::Resources::Project) }
3615
+ sig { params(workspace_name: T.any(String, Symbol)).returns(Asana::Resources::Project) }
3607
3616
  def my_tasks(workspace_name); end
3608
3617
 
3609
3618
  sig { returns(::Logger) }
@@ -3629,6 +3638,7 @@ module Checkoff
3629
3638
  sig { params(message: T.nilable(Object), block: T.untyped).void }
3630
3639
  def finer(message = nil, &block); end
3631
3640
 
3641
+ # @sg-ignore
3632
3642
  sig { returns(Symbol) }
3633
3643
  def log_level; end
3634
3644
 
@@ -3688,7 +3698,7 @@ module Checkoff
3688
3698
  # _@param_ `project_name`
3689
3699
  #
3690
3700
  # _@param_ `extra_fields`
3691
- sig { params(workspace_name: String, project_name: T.any(String, Symbol), extra_fields: T::Array[String]).returns(T::Enumerable[Asana::Resources::Section]) }
3701
+ sig { params(workspace_name: T.any(String, Symbol), project_name: T.any(String, Symbol), extra_fields: T::Array[String]).returns(T::Enumerable[Asana::Resources::Section]) }
3692
3702
  def sections_or_raise(workspace_name, project_name, extra_fields: []); end
3693
3703
 
3694
3704
  # sord warn - Asana::Resources::Section wasn't able to be resolved to a constant in this project
@@ -3744,9 +3754,9 @@ module Checkoff
3744
3754
  # _@param_ `extra_fields`
3745
3755
  sig do
3746
3756
  params(
3747
- workspace_name: String,
3757
+ workspace_name: T.any(String, Symbol),
3748
3758
  project_name: T.any(String, Symbol),
3749
- section_name: T.nilable(String),
3759
+ section_name: T.nilable(T.any(String, Symbol)),
3750
3760
  only_uncompleted: T::Boolean,
3751
3761
  extra_fields: T::Array[String]
3752
3762
  ).returns(T::Enumerable[Asana::Resources::Task])
@@ -3765,7 +3775,7 @@ module Checkoff
3765
3775
  def section_task_names(workspace_name, project_name, section_name); end
3766
3776
 
3767
3777
  # sord warn - Asana::Resources::Section wasn't able to be resolved to a constant in this project
3768
- # @sg-ignore
3778
+ # @sg-ignore section() is nil-checked below
3769
3779
  #
3770
3780
  # _@param_ `workspace_name`
3771
3781
  #
@@ -3776,16 +3786,16 @@ module Checkoff
3776
3786
  # _@param_ `extra_section_fields`
3777
3787
  sig do
3778
3788
  params(
3779
- workspace_name: String,
3789
+ workspace_name: T.any(String, Symbol),
3780
3790
  project_name: T.any(String, Symbol),
3781
- section_name: T.nilable(String),
3791
+ section_name: T.nilable(T.any(String, Symbol)),
3782
3792
  extra_section_fields: T::Array[String]
3783
3793
  ).returns(Asana::Resources::Section)
3784
3794
  end
3785
3795
  def section_or_raise(workspace_name, project_name, section_name, extra_section_fields: []); end
3786
3796
 
3787
3797
  # _@param_ `name`
3788
- sig { params(name: String).returns(T.nilable(String)) }
3798
+ sig { params(name: T.nilable(String)).returns(T.nilable(String)) }
3789
3799
  def section_key(name); end
3790
3800
 
3791
3801
  # sord warn - Asana::Resources::Section wasn't able to be resolved to a constant in this project
@@ -3803,8 +3813,6 @@ module Checkoff
3803
3813
  def as_cache_key; end
3804
3814
 
3805
3815
  # sord warn - Asana::Resources::Section wasn't able to be resolved to a constant in this project
3806
- # @sg-ignore
3807
- #
3808
3816
  # _@param_ `workspace_name`
3809
3817
  #
3810
3818
  # _@param_ `project_name`
@@ -3814,9 +3822,9 @@ module Checkoff
3814
3822
  # _@param_ `extra_section_fields`
3815
3823
  sig do
3816
3824
  params(
3817
- workspace_name: String,
3825
+ workspace_name: T.any(String, Symbol),
3818
3826
  project_name: T.any(String, Symbol),
3819
- section_name: T.nilable(String),
3827
+ section_name: T.nilable(T.any(String, Symbol)),
3820
3828
  extra_section_fields: T::Array[String]
3821
3829
  ).returns(T.nilable(Asana::Resources::Section))
3822
3830
  end
@@ -3863,10 +3871,12 @@ module Checkoff
3863
3871
  def file_task_by_section(by_section, task, project_gid); end
3864
3872
 
3865
3873
  # sord warn - Asana::Resources::Project wasn't able to be resolved to a constant in this project
3874
+ # @sg-ignore projects.project may be nil but is raised below
3875
+ #
3866
3876
  # _@param_ `workspace_name`
3867
3877
  #
3868
3878
  # _@param_ `project_name`
3869
- sig { params(workspace_name: String, project_name: T.any(String, Symbol)).returns(Asana::Resources::Project) }
3879
+ sig { params(workspace_name: T.any(String, Symbol), project_name: T.any(String, Symbol)).returns(Asana::Resources::Project) }
3870
3880
  def project_or_raise(workspace_name, project_name); end
3871
3881
 
3872
3882
  sig { returns(::Logger) }
@@ -3892,6 +3902,7 @@ module Checkoff
3892
3902
  sig { params(message: T.nilable(Object), block: T.untyped).void }
3893
3903
  def finer(message = nil, &block); end
3894
3904
 
3905
+ # @sg-ignore
3895
3906
  sig { returns(Symbol) }
3896
3907
  def log_level; end
3897
3908
 
@@ -3969,6 +3980,8 @@ module Checkoff
3969
3980
  # expected to move to the new-style way of representing sections
3970
3981
  # as memberships with a separate API within a task.
3971
3982
  #
3983
+ # @sg-ignore
3984
+ #
3972
3985
  # _@param_ `subtask`
3973
3986
  sig { params(subtask: Asana::Resources::Task).returns(T::Boolean) }
3974
3987
  def subtask_section?(subtask); end
@@ -4120,6 +4133,8 @@ module Checkoff
4120
4133
  def task_dependent_on_previous_section_last_milestone?(task, limit_to_portfolio_gid: nil); end
4121
4134
 
4122
4135
  # sord warn - Asana::Resources::Task wasn't able to be resolved to a constant in this project
4136
+ # @sg-ignore
4137
+ #
4123
4138
  # _@param_ `task`
4124
4139
  #
4125
4140
  # _@param_ `limit_to_portfolio_name`
@@ -4127,6 +4142,8 @@ module Checkoff
4127
4142
  def last_task_milestone_depends_on_this_task?(task, limit_to_portfolio_name: nil); end
4128
4143
 
4129
4144
  # sord warn - Asana::Resources::Task wasn't able to be resolved to a constant in this project
4145
+ # @sg-ignore
4146
+ #
4130
4147
  # _@param_ `task`
4131
4148
  #
4132
4149
  # _@param_ `limit_to_portfolio_name`
@@ -4189,6 +4206,8 @@ module Checkoff
4189
4206
  def initialize(config: Checkoff::Internal::ConfigLoader.load(:asana), clients: Checkoff::Clients.new(config:), client: clients.client, projects: Checkoff::Projects.new(config:, client:), workspaces: Checkoff::Workspaces.new(config:, client:)); end
4190
4207
 
4191
4208
  # sord warn - Asana::Resources::Portfolio wasn't able to be resolved to a constant in this project
4209
+ # @sg-ignore
4210
+ #
4192
4211
  # _@param_ `workspace_name`
4193
4212
  #
4194
4213
  # _@param_ `portfolio_name`
@@ -4264,19 +4283,21 @@ module Checkoff
4264
4283
 
4265
4284
  # sord warn - Asana::Resources::Workspace wasn't able to be resolved to a constant in this project
4266
4285
  # Pulls an Asana workspace object
4267
- # @sg-ignore
4268
4286
  #
4269
4287
  # _@param_ `workspace_name`
4270
- sig { params(workspace_name: String).returns(T.nilable(Asana::Resources::Workspace)) }
4288
+ sig { params(workspace_name: T.any(String, Symbol)).returns(T.nilable(Asana::Resources::Workspace)) }
4271
4289
  def workspace(workspace_name); end
4272
4290
 
4273
4291
  # sord warn - Asana::Resources::Workspace wasn't able to be resolved to a constant in this project
4292
+ # @sg-ignore
4274
4293
  sig { returns(Asana::Resources::Workspace) }
4275
4294
  def default_workspace; end
4276
4295
 
4277
4296
  # sord warn - Asana::Resources::Workspace wasn't able to be resolved to a constant in this project
4297
+ # @sg-ignore workspace() is nil-checked below
4298
+ #
4278
4299
  # _@param_ `workspace_name`
4279
- sig { params(workspace_name: String).returns(Asana::Resources::Workspace) }
4300
+ sig { params(workspace_name: T.any(String, Symbol)).returns(Asana::Resources::Workspace) }
4280
4301
  def workspace_or_raise(workspace_name); end
4281
4302
 
4282
4303
  # @sg-ignore
@@ -4342,19 +4363,15 @@ module Checkoff
4342
4363
  # extension as the URL using Net::HTTP, raising an exception if
4343
4364
  # not succesful
4344
4365
  #
4345
- # @sg-ignore
4346
- #
4347
4366
  # _@param_ `uri`
4348
4367
  #
4349
4368
  # _@param_ `verify_mode` — - e.g., OpenSSL::SSL::VERIFY_NONE,OpenSSL::SSL::VERIFY_PEER
4350
4369
  sig { params(uri: URI, verify_mode: Integer, block: T.untyped).returns(Object) }
4351
4370
  def download_uri(uri, verify_mode: OpenSSL::SSL::VERIFY_PEER, &block); end
4352
4371
 
4353
- # sord warn - Net::HTTPResponse wasn't able to be resolved to a constant in this project
4354
- # @sg-ignore
4355
- #
4372
+ # sord duck - #read_body looks like a duck type, replacing with untyped
4356
4373
  # _@param_ `response`
4357
- sig { params(response: Net::HTTPResponse).returns(Object) }
4374
+ sig { params(response: T.untyped).returns(Object) }
4358
4375
  def write_tempfile_from_response(response); end
4359
4376
 
4360
4377
  # sord warn - Asana::Resources::Attachment wasn't able to be resolved to a constant in this project
@@ -4384,8 +4401,6 @@ module Checkoff
4384
4401
  sig { params(url: String, resource: Asana::Resources::Resource, attachment_name: T.nilable(String)).returns(Asana::Resources::Attachment) }
4385
4402
  def create_attachment_from_url_alone!(url, resource, attachment_name:); end
4386
4403
 
4387
- # @sg-ignore
4388
- #
4389
4404
  # _@param_ `filename`
4390
4405
  sig { params(filename: String).returns(T.nilable(String)) }
4391
4406
  def content_type_from_filename(filename); end
@@ -4423,6 +4438,7 @@ module Checkoff
4423
4438
  sig { params(message: T.nilable(Object), block: T.untyped).void }
4424
4439
  def finer(message = nil, &block); end
4425
4440
 
4441
+ # @sg-ignore
4426
4442
  sig { returns(Symbol) }
4427
4443
  def log_level; end
4428
4444
 
@@ -4464,6 +4480,8 @@ module Checkoff
4464
4480
  client:)); end
4465
4481
 
4466
4482
  # sord warn - Asana::Resources::CustomField wasn't able to be resolved to a constant in this project
4483
+ # @sg-ignore
4484
+ #
4467
4485
  # _@param_ `workspace_name`
4468
4486
  #
4469
4487
  # _@param_ `custom_field_name`
@@ -4471,8 +4489,6 @@ module Checkoff
4471
4489
  def custom_field_or_raise(workspace_name, custom_field_name); end
4472
4490
 
4473
4491
  # sord warn - Asana::Resources::CustomField wasn't able to be resolved to a constant in this project
4474
- # @sg-ignore
4475
- #
4476
4492
  # _@param_ `workspace_name`
4477
4493
  #
4478
4494
  # _@param_ `custom_field_name`
@@ -4489,6 +4505,8 @@ module Checkoff
4489
4505
 
4490
4506
  # sord warn - Asana::Resources::Project wasn't able to be resolved to a constant in this project
4491
4507
  # sord warn - Asana::Resources::Task wasn't able to be resolved to a constant in this project
4508
+ # @sg-ignore
4509
+ #
4492
4510
  # _@param_ `resource`
4493
4511
  #
4494
4512
  # _@param_ `custom_field_name`
@@ -4497,8 +4515,6 @@ module Checkoff
4497
4515
 
4498
4516
  # sord warn - Asana::Resources::Task wasn't able to be resolved to a constant in this project
4499
4517
  # sord warn - Asana::Resources::Project wasn't able to be resolved to a constant in this project
4500
- # @sg-ignore
4501
- #
4502
4518
  # _@param_ `resource`
4503
4519
  #
4504
4520
  # _@param_ `custom_field_name`
@@ -4507,6 +4523,8 @@ module Checkoff
4507
4523
 
4508
4524
  # sord warn - Asana::Resources::Task wasn't able to be resolved to a constant in this project
4509
4525
  # sord warn - Asana::Resources::Project wasn't able to be resolved to a constant in this project
4526
+ # @sg-ignore
4527
+ #
4510
4528
  # _@param_ `resource`
4511
4529
  #
4512
4530
  # _@param_ `custom_field_name`
@@ -4515,6 +4533,8 @@ module Checkoff
4515
4533
 
4516
4534
  # sord warn - Asana::Resources::Project wasn't able to be resolved to a constant in this project
4517
4535
  # sord warn - Asana::Resources::Task wasn't able to be resolved to a constant in this project
4536
+ # @sg-ignore
4537
+ #
4518
4538
  # _@param_ `resource`
4519
4539
  #
4520
4540
  # _@param_ `custom_field_gid`
@@ -4698,6 +4718,7 @@ module Checkoff
4698
4718
  sig { params(message: T.nilable(Object), block: T.untyped).void }
4699
4719
  def finer(message = nil, &block); end
4700
4720
 
4721
+ # @sg-ignore
4701
4722
  sig { returns(Symbol) }
4702
4723
  def log_level; end
4703
4724
 
@@ -4725,8 +4746,6 @@ module Checkoff
4725
4746
  SHORT_CACHE_TIME = T.let(MINUTE, T.untyped)
4726
4747
 
4727
4748
  # sord warn - Asana::Client wasn't able to be resolved to a constant in this project
4728
- # @sg-ignore
4729
- #
4730
4749
  # _@param_ `config`
4731
4750
  #
4732
4751
  # _@param_ `client`
@@ -4972,25 +4991,25 @@ module Checkoff
4972
4991
  def initialize(time_class: Time, date_class: Date, client: Checkoff::Clients.new.client, custom_fields: Checkoff::CustomFields.new(client:)); end
4973
4992
 
4974
4993
  # sord warn - Asana::Resources::Task wasn't able to be resolved to a constant in this project
4994
+ # @sg-ignore
4995
+ #
4975
4996
  # _@param_ `task`
4976
4997
  sig { params(task: Asana::Resources::Task).returns(T.nilable(Time)) }
4977
4998
  def start_time(task); end
4978
4999
 
4979
5000
  # sord warn - Asana::Resources::Task wasn't able to be resolved to a constant in this project
5001
+ # @sg-ignore
5002
+ #
4980
5003
  # _@param_ `task`
4981
5004
  sig { params(task: Asana::Resources::Task).returns(T.nilable(Time)) }
4982
5005
  def due_time(task); end
4983
5006
 
4984
5007
  # sord warn - Asana::Resources::Task wasn't able to be resolved to a constant in this project
4985
- # @sg-ignore
4986
- #
4987
5008
  # _@param_ `task`
4988
5009
  sig { params(task: Asana::Resources::Task).returns(T.nilable(T.any(Date, Time))) }
4989
5010
  def start_date_or_time(task); end
4990
5011
 
4991
5012
  # sord warn - Asana::Resources::Task wasn't able to be resolved to a constant in this project
4992
- # @sg-ignore
4993
- #
4994
5013
  # _@param_ `task`
4995
5014
  sig { params(task: Asana::Resources::Task).returns(T.nilable(T.any(Date, Time))) }
4996
5015
  def due_date_or_time(task); end
@@ -5008,8 +5027,6 @@ module Checkoff
5008
5027
  def custom_field(task, custom_field_name); end
5009
5028
 
5010
5029
  # sord warn - Asana::Resources::Task wasn't able to be resolved to a constant in this project
5011
- # @sg-ignore
5012
- #
5013
5030
  # _@param_ `task`
5014
5031
  #
5015
5032
  # _@param_ `field_name`
@@ -5041,6 +5058,8 @@ module Checkoff
5041
5058
  sig { params(config: T::Hash[Symbol, T.untyped], sym: Symbol, yaml_filename: String).void }
5042
5059
  def initialize(config, sym, yaml_filename); end
5043
5060
 
5061
+ # @sg-ignore
5062
+ #
5044
5063
  # _@param_ `key`
5045
5064
  sig { params(key: Symbol).returns(Object) }
5046
5065
  def [](key); end
@@ -5109,15 +5128,11 @@ module Checkoff
5109
5128
  def initialize(time_class: Time, date_class: Date, client: Checkoff::Clients.new.client, custom_fields: Checkoff::CustomFields.new(client:)); end
5110
5129
 
5111
5130
  # sord warn - Asana::Resources::Project wasn't able to be resolved to a constant in this project
5112
- # @sg-ignore
5113
- #
5114
5131
  # _@param_ `project`
5115
5132
  sig { params(project: Asana::Resources::Project).returns(T.nilable(Date)) }
5116
5133
  def start_date(project); end
5117
5134
 
5118
5135
  # sord warn - Asana::Resources::Project wasn't able to be resolved to a constant in this project
5119
- # @sg-ignore
5120
- #
5121
5136
  # _@param_ `project`
5122
5137
  sig { params(project: Asana::Resources::Project).returns(T.nilable(Date)) }
5123
5138
  def due_date(project); end
@@ -5130,8 +5145,6 @@ module Checkoff
5130
5145
  def custom_field(project, custom_field_name); end
5131
5146
 
5132
5147
  # sord warn - Asana::Resources::Project wasn't able to be resolved to a constant in this project
5133
- # @sg-ignore
5134
- #
5135
5148
  # _@param_ `project`
5136
5149
  #
5137
5150
  # _@param_ `field_name`
@@ -5174,6 +5187,8 @@ module Checkoff
5174
5187
  sig { params(args: T::Array[T::Hash[String, String]]).returns(T::Hash[String, String]) }
5175
5188
  def self.merge_args(*args); end
5176
5189
 
5190
+ # @sg-ignore
5191
+ #
5177
5192
  # _@param_ `task_selectors`
5178
5193
  sig { params(task_selectors: T::Array[T.any(Symbol, T::Array[T.untyped])]).returns([Symbol, T::Array[T.untyped], T::Array[T.untyped]]) }
5179
5194
  def self.merge_task_selectors(*task_selectors); end
@@ -5192,8 +5207,6 @@ module Checkoff
5192
5207
  sig { void }
5193
5208
  def ensure_no_remaining_params!; end
5194
5209
 
5195
- # @sg-ignore
5196
- #
5197
5210
  # _@param_ `param_name`
5198
5211
  sig { params(param_name: String).returns(String) }
5199
5212
  def fetch_solo_param(param_name); end
@@ -5321,6 +5334,8 @@ module Checkoff
5321
5334
  sig { params(prefix: String).returns([T::Hash[String, String], T::Array[T.any(Symbol, T::Array[T.untyped])]]) }
5322
5335
  def handle_within_next(prefix); end
5323
5336
 
5337
+ # @sg-ignore
5338
+ #
5324
5339
  # _@param_ `param_key`
5325
5340
  sig { params(param_key: String).returns(String) }
5326
5341
  def get_single_param(param_key); end
@@ -5349,8 +5364,6 @@ module Checkoff
5349
5364
  sig { params(key: String, values: T::Array[String]).void }
5350
5365
  def initialize(key:, values:); end
5351
5366
 
5352
- # @sg-ignore
5353
- #
5354
5367
  # _@return_ — the single value of the search url param
5355
5368
  sig { returns(String) }
5356
5369
  def single_value; end
@@ -5521,7 +5534,6 @@ module Checkoff
5521
5534
  sig { returns([T::Hash[String, String], T::Array[T.any(Symbol, T::Array[T.untyped])]]) }
5522
5535
  def convert; end
5523
5536
 
5524
- # @sg-ignore
5525
5537
  sig { returns(T::Hash[String, T::Hash[T.untyped, T.untyped]]) }
5526
5538
  def by_custom_field; end
5527
5539
 
@@ -5533,6 +5545,8 @@ module Checkoff
5533
5545
  sig { params(gid: String, single_custom_field_params: T::Hash[String, T::Array[String]]).returns([T::Hash[String, String], T::Array[T.any(Symbol, T::Array[T.untyped])]]) }
5534
5546
  def convert_single_custom_field_params(gid, single_custom_field_params); end
5535
5547
 
5548
+ # @sg-ignore
5549
+ #
5536
5550
  # _@param_ `key`
5537
5551
  sig { params(key: String).returns(String) }
5538
5552
  def gid_from_custom_field_key(key); end
@@ -5576,8 +5590,6 @@ module Checkoff
5576
5590
  sig { params(asana_event: T::Hash[T.untyped, T.untyped]).returns(T::Boolean) }
5577
5591
  def matches?(asana_event); end
5578
5592
 
5579
- # @sg-ignore
5580
- #
5581
5593
  # _@param_ `filter`
5582
5594
  #
5583
5595
  # _@param_ `asana_event`
@@ -5586,8 +5598,6 @@ module Checkoff
5586
5598
  sig { params(filter: T::Hash[T.untyped, T.untyped], asana_event: T::Hash[T.untyped, T.untyped], failures: T::Array[String]).returns(T::Boolean) }
5587
5599
  def filter_matches_asana_event?(filter, asana_event, failures); end
5588
5600
 
5589
- # @sg-ignore
5590
- #
5591
5601
  # _@param_ `key`
5592
5602
  #
5593
5603
  # _@param_ `value`
@@ -5628,6 +5638,7 @@ module Checkoff
5628
5638
  sig { params(message: T.nilable(Object), block: T.untyped).void }
5629
5639
  def finer(message = nil, &block); end
5630
5640
 
5641
+ # @sg-ignore
5631
5642
  sig { returns(Symbol) }
5632
5643
  def log_level; end
5633
5644
  end
@@ -5695,6 +5706,8 @@ module Checkoff
5695
5706
  sig { params(gid: String, resource_type: T.nilable(String)).returns([T.untyped, T.untyped, T.untyped, T.untyped]) }
5696
5707
  def enrich_gid(gid, resource_type: nil); end
5697
5708
 
5709
+ # @sg-ignore
5710
+ #
5698
5711
  # _@param_ `filter`
5699
5712
  sig { params(filter: T::Hash[String, T.any(String, T::Array[String])]).returns(T.nilable(String)) }
5700
5713
  def enrich_filter_parent_gid!(filter); end
@@ -5740,6 +5753,7 @@ module Checkoff
5740
5753
  sig { params(message: T.nilable(Object), block: T.untyped).void }
5741
5754
  def finer(message = nil, &block); end
5742
5755
 
5756
+ # @sg-ignore
5743
5757
  sig { returns(Symbol) }
5744
5758
  def log_level; end
5745
5759
 
@@ -5805,8 +5819,6 @@ module Checkoff
5805
5819
  def evaluate_arg?(_index); end
5806
5820
 
5807
5821
  # sord warn - Asana::Resources::Task wasn't able to be resolved to a constant in this project
5808
- # @sg-ignore
5809
- #
5810
5822
  # _@param_ `task`
5811
5823
  sig { params(task: Asana::Resources::Task).returns(T::Boolean) }
5812
5824
  def evaluate(task); end
@@ -5879,8 +5891,6 @@ module Checkoff
5879
5891
  def evaluate_arg?(_index); end
5880
5892
 
5881
5893
  # sord warn - Asana::Resources::Task wasn't able to be resolved to a constant in this project
5882
- # @sg-ignore
5883
- #
5884
5894
  # _@param_ `task`
5885
5895
  #
5886
5896
  # _@param_ `portfolio_name`
@@ -5955,6 +5965,8 @@ module Checkoff
5955
5965
  def matches?; end
5956
5966
 
5957
5967
  # sord warn - Asana::Resources::Task wasn't able to be resolved to a constant in this project
5968
+ # @sg-ignore
5969
+ #
5958
5970
  # _@param_ `task`
5959
5971
  sig { params(task: Asana::Resources::Task).returns(T::Boolean) }
5960
5972
  def evaluate(task); end
@@ -6072,6 +6084,8 @@ module Checkoff
6072
6084
  def evaluate_arg?(_index); end
6073
6085
 
6074
6086
  # sord warn - Asana::Resources::Task wasn't able to be resolved to a constant in this project
6087
+ # @sg-ignore
6088
+ #
6075
6089
  # _@param_ `task`
6076
6090
  sig { params(task: Asana::Resources::Task).returns(T::Boolean) }
6077
6091
  def evaluate(task); end
@@ -6119,6 +6133,15 @@ module Checkoff
6119
6133
 
6120
6134
  sig { returns([Symbol, T::Array[T.untyped]]) }
6121
6135
  attr_reader :selector
6136
+
6137
+ sig { returns(Checkoff::Tasks) }
6138
+ attr_reader :tasks
6139
+
6140
+ sig { returns(Checkoff::Timelines) }
6141
+ attr_reader :timelines
6142
+
6143
+ sig { returns(Checkoff::CustomFields) }
6144
+ attr_reader :custom_fields
6122
6145
  end
6123
6146
  end
6124
6147
 
@@ -6237,6 +6260,8 @@ module Checkoff
6237
6260
  # sord warn - Asana::Resources::Task wasn't able to be resolved to a constant in this project
6238
6261
  # sord warn - Asana::Resources::Project wasn't able to be resolved to a constant in this project
6239
6262
  # @sg-ignore
6263
+ # @sg-ignore
6264
+ # @sg-ignore
6240
6265
  #
6241
6266
  # _@param_ `resource`
6242
6267
  #
@@ -6257,6 +6282,9 @@ module Checkoff
6257
6282
 
6258
6283
  # sord warn - Asana::Resources::Task wasn't able to be resolved to a constant in this project
6259
6284
  # sord warn - Asana::Resources::Project wasn't able to be resolved to a constant in this project
6285
+ # @sg-ignore
6286
+ # @sg-ignore
6287
+ #
6260
6288
  # _@param_ `resource`
6261
6289
  #
6262
6290
  # _@param_ `custom_field_gid`
@@ -6278,6 +6306,9 @@ module Checkoff
6278
6306
 
6279
6307
  # sord warn - Asana::Resources::Task wasn't able to be resolved to a constant in this project
6280
6308
  # sord warn - Asana::Resources::Project wasn't able to be resolved to a constant in this project
6309
+ # @sg-ignore
6310
+ # @sg-ignore
6311
+ #
6281
6312
  # _@param_ `resource`
6282
6313
  #
6283
6314
  # _@param_ `custom_field_name`
@@ -6322,6 +6353,8 @@ module Checkoff
6322
6353
  # sord warn - Asana::Resources::Project wasn't able to be resolved to a constant in this project
6323
6354
  # sord warn - boolish is probably not a type, but using anyway
6324
6355
  # sord warn - boolish wasn't able to be resolved to a constant in this project
6356
+ # @sg-ignore
6357
+ #
6325
6358
  # _@param_ `resource`
6326
6359
  #
6327
6360
  # _@param_ `prefix`
@@ -6368,6 +6401,8 @@ module Checkoff
6368
6401
  def matches?; end
6369
6402
 
6370
6403
  # sord warn - Asana::Resources::Project wasn't able to be resolved to a constant in this project
6404
+ # @sg-ignore
6405
+ #
6371
6406
  # _@param_ `resource`
6372
6407
  sig { params(resource: Asana::Resources::Project).returns(T.nilable(String)) }
6373
6408
  def evaluate(resource); end
@@ -6381,6 +6416,8 @@ module Checkoff
6381
6416
  def matches?; end
6382
6417
 
6383
6418
  # sord warn - Asana::Resources::Project wasn't able to be resolved to a constant in this project
6419
+ # @sg-ignore
6420
+ #
6384
6421
  # _@param_ `project`
6385
6422
  #
6386
6423
  # _@param_ `period` — - :now_or_before or :this_week
@@ -6396,6 +6433,10 @@ module Checkoff
6396
6433
  def matches?; end
6397
6434
 
6398
6435
  # sord warn - Asana::Resources::Project wasn't able to be resolved to a constant in this project
6436
+ # @sg-ignore
6437
+ #
6438
+ # @sg-ignore
6439
+ #
6399
6440
  # _@param_ `project`
6400
6441
  #
6401
6442
  # _@param_ `portfolio_name`
@@ -6552,6 +6593,7 @@ module Checkoff
6552
6593
  sig { params(message: T.nilable(Object), block: T.untyped).void }
6553
6594
  def finer(message = nil, &block); end
6554
6595
 
6596
+ # @sg-ignore
6555
6597
  sig { returns(Symbol) }
6556
6598
  def log_level; end
6557
6599
  end
@@ -6744,6 +6786,7 @@ module Logging
6744
6786
  sig { params(message: T.nilable(Object), block: T.untyped).void }
6745
6787
  def finer(message = nil, &block); end
6746
6788
 
6789
+ # @sg-ignore
6747
6790
  sig { returns(Symbol) }
6748
6791
  def log_level; end
6749
6792
  end
@@ -6798,16 +6841,16 @@ module TestDate
6798
6841
  late_late_evening: '22:33:20',
6799
6842
  }.freeze, T.untyped)
6800
6843
 
6801
- sig { returns(T.untyped) }
6844
+ sig { void }
6802
6845
  def mock_date; end
6803
6846
 
6804
6847
  sig { params(zone: T.untyped).returns(T.untyped) }
6805
6848
  def time_by_period(zone); end
6806
6849
 
6807
- sig { params(zone: T.untyped).returns(T.untyped) }
6850
+ sig { params(zone: T.untyped).void }
6808
6851
  def mock_now_with_zone(zone); end
6809
6852
 
6810
- sig { returns(T.untyped) }
6853
+ sig { void }
6811
6854
  def mock_now; end
6812
6855
 
6813
6856
  sig { returns(T.untyped) }
@@ -6820,67 +6863,67 @@ end
6820
6863
  class TestTags < ClassTest
6821
6864
  extend Forwardable
6822
6865
 
6823
- sig { returns(T.untyped) }
6866
+ sig { void }
6824
6867
  def test_tag_or_raise_raises; end
6825
6868
 
6826
- sig { returns(T.untyped) }
6869
+ sig { void }
6827
6870
  def test_tag_or_raise; end
6828
6871
 
6829
6872
  sig { returns(T.untyped) }
6830
6873
  def expect_workspace_pulled; end
6831
6874
 
6832
- sig { returns(T.untyped) }
6875
+ sig { void }
6833
6876
  def allow_tags_named; end
6834
6877
 
6835
- sig { params(tag_arr: T.untyped).returns(T.untyped) }
6878
+ sig { params(tag_arr: T.untyped).void }
6836
6879
  def expect_tags_pulled(tag_arr); end
6837
6880
 
6838
- sig { returns(T.untyped) }
6881
+ sig { void }
6839
6882
  def test_tag; end
6840
6883
 
6841
- sig { params(only_uncompleted: T.untyped).returns(T.untyped) }
6884
+ sig { params(only_uncompleted: T.untyped).void }
6842
6885
  def mock_tasks(only_uncompleted: true); end
6843
6886
 
6844
- sig { params(only_uncompleted: T.untyped).returns(T.untyped) }
6887
+ sig { params(only_uncompleted: T.untyped).void }
6845
6888
  def build_task_params(only_uncompleted); end
6846
6889
 
6847
- sig { returns(T.untyped) }
6890
+ sig { void }
6848
6891
  def build_response_body; end
6849
6892
 
6850
- sig { params(task_endpoint: T.untyped, task_params: T.untyped, merged_task_options: T.untyped).returns(T.untyped) }
6893
+ sig { params(task_endpoint: T.untyped, task_params: T.untyped, merged_task_options: T.untyped).void }
6851
6894
  def setup_client_expects(task_endpoint, task_params, merged_task_options); end
6852
6895
 
6853
- sig { params(response_body: T.untyped).returns(T.untyped) }
6896
+ sig { params(response_body: T.untyped).void }
6854
6897
  def setup_response_expects(response_body); end
6855
6898
 
6856
- sig { returns(T.untyped) }
6899
+ sig { void }
6857
6900
  def setup_collection_expects; end
6858
6901
 
6859
- sig { returns(T.untyped) }
6902
+ sig { void }
6860
6903
  def generate_task_options; end
6861
6904
 
6862
- sig { returns(T.untyped) }
6905
+ sig { void }
6863
6906
  def generate_merged_task_options; end
6864
6907
 
6865
- sig { returns(T.untyped) }
6908
+ sig { void }
6866
6909
  def generate_task_endpoint; end
6867
6910
 
6868
- sig { returns(T.untyped) }
6911
+ sig { void }
6869
6912
  def projects; end
6870
6913
 
6871
- sig { returns(T.untyped) }
6914
+ sig { void }
6872
6915
  def test_tasks; end
6873
6916
 
6874
- sig { returns(T.untyped) }
6917
+ sig { void }
6875
6918
  def test_tasks_with_completed; end
6876
6919
 
6877
- sig { returns(T.untyped) }
6920
+ sig { void }
6878
6921
  def respond_like_instance_of; end
6879
6922
 
6880
- sig { returns(T.untyped) }
6923
+ sig { void }
6881
6924
  def respond_like; end
6882
6925
 
6883
- sig { returns(T.untyped) }
6926
+ sig { void }
6884
6927
  def class_under_test; end
6885
6928
  end
6886
6929
 
@@ -6888,22 +6931,22 @@ end
6888
6931
  class BaseAsana < ClassTest
6889
6932
  include TestDate
6890
6933
 
6891
- sig { params(extra_fields: T.untyped).returns(T.untyped) }
6934
+ sig { params(extra_fields: T.untyped).void }
6892
6935
  def task_options(extra_fields: []); end
6893
6936
 
6894
- sig { returns(T.untyped) }
6937
+ sig { void }
6895
6938
  def task_options_with_completed; end
6896
6939
 
6897
- sig { returns(T.untyped) }
6940
+ sig { void }
6898
6941
  def mock_date; end
6899
6942
 
6900
6943
  sig { params(zone: T.untyped).returns(T.untyped) }
6901
6944
  def time_by_period(zone); end
6902
6945
 
6903
- sig { params(zone: T.untyped).returns(T.untyped) }
6946
+ sig { params(zone: T.untyped).void }
6904
6947
  def mock_now_with_zone(zone); end
6905
6948
 
6906
- sig { returns(T.untyped) }
6949
+ sig { void }
6907
6950
  def mock_now; end
6908
6951
  end
6909
6952
 
@@ -6916,20 +6959,16 @@ class ClassTest < Minitest::Test
6916
6959
  # # Go ahead and use concrete value for constructor arg
6917
6960
  # @mocks[:some_constructor_arg] = 123
6918
6961
  # end
6919
- sig { params(clazz: T.untyped, twiddle_mocks: T.untyped).returns(T.untyped) }
6962
+ sig { params(clazz: T.untyped, twiddle_mocks: T.untyped).void }
6920
6963
  def get_test_object(clazz = class_under_test, &twiddle_mocks); end
6921
6964
 
6922
- # default to telling get_initailizer_mocks not to validate this.
6923
- # things going forward using create-test.sh should default to
6924
- # setting this to non-nil values, which are validated and require
6925
- # setting a full hash of values
6926
- sig { returns(T.untyped) }
6965
+ sig { void }
6927
6966
  def respond_like_instance_of; end
6928
6967
 
6929
- sig { returns(T.untyped) }
6968
+ sig { void }
6930
6969
  def respond_like; end
6931
6970
 
6932
- sig { params(clazz: T.untyped).returns(T.untyped) }
6971
+ sig { params(clazz: T.untyped).void }
6933
6972
  def create_object(clazz = class_under_test); end
6934
6973
  end
6935
6974
 
@@ -6957,70 +6996,70 @@ class TestTasks < BaseAsana
6957
6996
  late_late_evening: '22:33:20',
6958
6997
  }.freeze, T.untyped)
6959
6998
 
6960
- sig { returns(T.untyped) }
6999
+ sig { void }
6961
7000
  def expect_now_pulled; end
6962
7001
 
6963
- sig { params(less_than_now: T.untyped).returns(T.untyped) }
7002
+ sig { params(less_than_now: T.untyped).void }
6964
7003
  def expect_due_on_parsed(less_than_now:); end
6965
7004
 
6966
- sig { params(less_than_now: T.untyped).returns(T.untyped) }
7005
+ sig { params(less_than_now: T.untyped).void }
6967
7006
  def expect_start_on_parsed(less_than_now:); end
6968
7007
 
6969
- sig { params(less_than_now: T.untyped).returns(T.untyped) }
7008
+ sig { params(less_than_now: T.untyped).void }
6970
7009
  def expect_start_at_parsed(less_than_now:); end
6971
7010
 
6972
- sig { returns(T.untyped) }
7011
+ sig { void }
6973
7012
  def mock_task_ready_false_due_in_future_on_date; end
6974
7013
 
6975
- sig { returns(T.untyped) }
7014
+ sig { void }
6976
7015
  def test_task_ready_false_due_in_future_on_date; end
6977
7016
 
6978
7017
  sig { returns(T.untyped) }
6979
7018
  def mock_task_ready_true_start_in_past; end
6980
7019
 
6981
- sig { returns(T.untyped) }
7020
+ sig { void }
6982
7021
  def test_task_ready_true_start_in_past; end
6983
7022
 
6984
- sig { returns(T.untyped) }
7023
+ sig { void }
6985
7024
  def mock_task_ready_true_start_in_past_time; end
6986
7025
 
6987
- sig { returns(T.untyped) }
7026
+ sig { void }
6988
7027
  def test_task_ready_true_start_in_past_time; end
6989
7028
 
6990
- sig { params(less_than_now: T.untyped).returns(T.untyped) }
7029
+ sig { params(less_than_now: T.untyped).void }
6991
7030
  def expect_due_at_parsed(less_than_now:); end
6992
7031
 
6993
- sig { returns(T.untyped) }
7032
+ sig { void }
6994
7033
  def mock_task_ready_false_due_in_future_at_time; end
6995
7034
 
6996
- sig { returns(T.untyped) }
7035
+ sig { void }
6997
7036
  def test_task_ready_false_due_in_future_at_time; end
6998
7037
 
6999
- sig { params(task: T.untyped, dependency_gids: T.untyped).returns(T.untyped) }
7038
+ sig { params(task: T.untyped, dependency_gids: T.untyped).void }
7000
7039
  def expect_dependency_gids_pulled(task, dependency_gids); end
7001
7040
 
7002
- sig { returns(T.untyped) }
7041
+ sig { void }
7003
7042
  def test_task_ready_true_no_due_anything; end
7004
7043
 
7005
- sig { returns(T.untyped) }
7044
+ sig { void }
7006
7045
  def expect_asana_tasks_client_pulled; end
7007
7046
 
7008
- sig { returns(T.untyped) }
7047
+ sig { void }
7009
7048
  def default_fields; end
7010
7049
 
7011
- sig { params(extra_fields: T.untyped).returns(T.untyped) }
7050
+ sig { params(extra_fields: T.untyped).void }
7012
7051
  def fields_including(extra_fields); end
7013
7052
 
7014
- sig { params(dependency_gid: T.untyped, dependency_full_task: T.untyped, completed: T.untyped).returns(T.untyped) }
7053
+ sig { params(dependency_gid: T.untyped, dependency_full_task: T.untyped, completed: T.untyped).void }
7015
7054
  def expect_dependency_completion_pulled(dependency_gid, dependency_full_task, completed); end
7016
7055
 
7017
- sig { returns(T.untyped) }
7056
+ sig { void }
7018
7057
  def mock_task_ready_false_dependency; end
7019
7058
 
7020
7059
  sig { returns(T.untyped) }
7021
7060
  def test_task_ready_false_dependency; end
7022
7061
 
7023
- sig { returns(T.untyped) }
7062
+ sig { void }
7024
7063
  def test_task_ready_false_dependency_cached; end
7025
7064
 
7026
7065
  sig do
@@ -7029,17 +7068,17 @@ class TestTasks < BaseAsana
7029
7068
  start_at: T.untyped,
7030
7069
  due_on: T.untyped,
7031
7070
  due_at: T.untyped
7032
- ).returns(T.untyped)
7071
+ ).void
7033
7072
  end
7034
7073
  def allow_task_due(start_on: nil, start_at: nil, due_on: nil, due_at: nil); end
7035
7074
 
7036
- sig { params(task: T.untyped, start_at: T.untyped).returns(T.untyped) }
7075
+ sig { params(task: T.untyped, start_at: T.untyped).void }
7037
7076
  def allow_start_at_pulled(task, start_at); end
7038
7077
 
7039
7078
  sig { params(task: T.untyped, start_on: T.untyped).returns(T.untyped) }
7040
7079
  def allow_start_on_pulled(task, start_on); end
7041
7080
 
7042
- sig { params(task: T.untyped, due_at: T.untyped).returns(T.untyped) }
7081
+ sig { params(task: T.untyped, due_at: T.untyped).void }
7043
7082
  def allow_due_at_pulled(task, due_at); end
7044
7083
 
7045
7084
  sig { params(task: T.untyped, due_on: T.untyped).returns(T.untyped) }
@@ -7051,16 +7090,16 @@ class TestTasks < BaseAsana
7051
7090
  sig { returns(T.untyped) }
7052
7091
  def expect_task_created; end
7053
7092
 
7054
- sig { returns(T.untyped) }
7093
+ sig { void }
7055
7094
  def mock_add_task; end
7056
7095
 
7057
- sig { returns(T.untyped) }
7096
+ sig { void }
7058
7097
  def test_add_task; end
7059
7098
 
7060
7099
  sig { returns(T.untyped) }
7061
7100
  def expect_tasks_from_project_pulled; end
7062
7101
 
7063
- sig { returns(T.untyped) }
7102
+ sig { void }
7064
7103
  def expect_project_pulled; end
7065
7104
 
7066
7105
  sig { params(extra_fields: T.untyped).returns(T.untyped) }
@@ -7078,107 +7117,116 @@ class TestTasks < BaseAsana
7078
7117
  sig { returns(T.untyped) }
7079
7118
  def mock_task_with_section; end
7080
7119
 
7081
- sig { returns(T.untyped) }
7120
+ sig { void }
7082
7121
  def test_task_with_section; end
7083
7122
 
7084
7123
  sig { returns(T.untyped) }
7085
7124
  def mock_task; end
7086
7125
 
7087
- sig { returns(T.untyped) }
7126
+ sig { void }
7088
7127
  def test_task; end
7089
7128
 
7090
- sig { returns(T.untyped) }
7129
+ sig { void }
7091
7130
  def test_in_portfolio_more_than_once; end
7092
7131
 
7093
7132
  sig { returns(T.untyped) }
7094
7133
  def test_task_to_h_delegates; end
7095
7134
 
7096
- sig { returns(T.untyped) }
7135
+ sig { void }
7097
7136
  def expect_default_workspace_name_pulled; end
7098
7137
 
7099
- sig { returns(T.untyped) }
7138
+ sig { void }
7100
7139
  def mock_in_portfolio_named_false_no_projects_no_memberships; end
7101
7140
 
7102
- sig { returns(T.untyped) }
7141
+ sig { void }
7103
7142
  def test_in_portfolio_named_false_no_projects_no_memberships; end
7104
7143
 
7105
- sig { returns(T.untyped) }
7144
+ sig { void }
7106
7145
  def mock_in_portfolio_named_false_no_projects_but_memberships; end
7107
7146
 
7108
- sig { returns(T.untyped) }
7147
+ sig { void }
7109
7148
  def test_in_portfolio_named_false_no_projects_but_memberships; end
7110
7149
 
7111
- sig { returns(T.untyped) }
7150
+ sig { void }
7112
7151
  def mock_in_portfolio_named_false_projects_wrong_memberships; end
7113
7152
 
7114
- sig { returns(T.untyped) }
7153
+ sig { void }
7115
7154
  def test_in_portfolio_named_false_projects_wrong_memberships; end
7116
7155
 
7117
- sig { returns(T.untyped) }
7156
+ sig { void }
7118
7157
  def test_date_or_time_field_by_name; end
7119
7158
 
7120
- sig { returns(T.untyped) }
7159
+ sig { void }
7121
7160
  def test_h_to_task; end
7122
7161
 
7123
- sig { returns(T.untyped) }
7162
+ sig { void }
7124
7163
  def test_all_dependent_tasks_empty; end
7125
7164
 
7126
- sig { returns(T.untyped) }
7165
+ sig { void }
7127
7166
  def test_all_dependent_tasks_one; end
7128
7167
 
7129
- sig { returns(T.untyped) }
7168
+ sig { void }
7130
7169
  def test_as_cache_key; end
7131
7170
 
7132
- sig { returns(T.untyped) }
7171
+ sig { void }
7133
7172
  def class_under_test; end
7173
+
7174
+ sig { void }
7175
+ def test_in_portfolio_more_than_once_true; end
7176
+
7177
+ sig { void }
7178
+ def test_gid_for_task; end
7179
+
7180
+ sig { void }
7181
+ def test_gid_for_task_not_found; end
7134
7182
  end
7135
7183
 
7136
7184
  # Test the Checkoff::CLI class with mv subcommand
7137
7185
  class TestCLIMv < Minitest::Test
7138
- sig { returns(T.untyped) }
7186
+ sig { void }
7139
7187
  def expect_workspaces_created; end
7140
7188
 
7141
- sig { returns(T.untyped) }
7189
+ sig { void }
7142
7190
  def expect_config_loaded; end
7143
7191
 
7144
- sig { returns(T.untyped) }
7192
+ sig { void }
7145
7193
  def expect_sections_created; end
7146
7194
 
7147
- sig { returns(T.untyped) }
7195
+ sig { void }
7148
7196
  def expect_tasks_created; end
7149
7197
 
7150
- sig { returns(T.untyped) }
7198
+ sig { void }
7151
7199
  def set_mocks; end
7152
7200
 
7153
- sig { params(_twiddle_mocks: T.untyped).returns(T.untyped) }
7201
+ sig { params(_twiddle_mocks: T.untyped).void }
7154
7202
  def get_test_object(&_twiddle_mocks); end
7155
7203
 
7156
- sig { returns(T.untyped) }
7204
+ sig { void }
7157
7205
  def mock_mv_original_use_case; end
7158
7206
 
7159
- sig { returns(T.untyped) }
7207
+ sig { void }
7160
7208
  def test_mv_original_use_case; end
7161
7209
  end
7162
7210
 
7163
7211
  class TestEvents < ClassTest
7164
7212
  extend Forwardable
7165
7213
 
7166
- sig { returns(T.untyped) }
7214
+ sig { void }
7167
7215
  def mock_filter_asana_events_true; end
7168
7216
 
7169
- sig { returns(T.untyped) }
7217
+ sig { void }
7170
7218
  def test_filter_asana_events_true; end
7171
7219
 
7172
- sig { returns(T.untyped) }
7220
+ sig { void }
7173
7221
  def test_filter_asana_events_false; end
7174
7222
 
7175
- sig { returns(T.untyped) }
7223
+ sig { void }
7176
7224
  def class_under_test; end
7177
7225
 
7178
- sig { returns(T.untyped) }
7226
+ sig { void }
7179
7227
  def respond_like_instance_of; end
7180
7228
 
7181
- sig { returns(T.untyped) }
7229
+ sig { void }
7182
7230
  def respond_like; end
7183
7231
  end
7184
7232
 
@@ -7187,7 +7235,7 @@ end
7187
7235
  #
7188
7236
  # rubocop:disable Style/OpenStructUse
7189
7237
  class MyOpenStruct < OpenStruct
7190
- sig { params(sym: T.untyped).returns(T.untyped) }
7238
+ sig { params(sym: T.untyped).void }
7191
7239
  def delete(sym); end
7192
7240
 
7193
7241
  sig { params(hash: T.untyped).returns(T.untyped) }
@@ -7204,110 +7252,110 @@ end
7204
7252
  class TestTiming < ClassTest
7205
7253
  extend Forwardable
7206
7254
 
7207
- sig { returns(T.untyped) }
7255
+ sig { void }
7208
7256
  def test_in_period_this_week_date_true; end
7209
7257
 
7210
- sig { returns(T.untyped) }
7258
+ sig { void }
7211
7259
  def test_in_period_this_week_nil_true; end
7212
7260
 
7213
- sig { returns(T.untyped) }
7261
+ sig { void }
7214
7262
  def test_in_period_day_of_week_nil_false; end
7215
7263
 
7216
- sig { returns(T.untyped) }
7264
+ sig { void }
7217
7265
  def test_in_period_day_of_week_saturday_false; end
7218
7266
 
7219
- sig { returns(T.untyped) }
7267
+ sig { void }
7220
7268
  def test_in_period_indefinite_true; end
7221
7269
 
7222
- sig { returns(T.untyped) }
7270
+ sig { void }
7223
7271
  def test_in_period_bad_period; end
7224
7272
 
7225
- sig { returns(T.untyped) }
7273
+ sig { void }
7226
7274
  def test_in_period_bad_compound_period; end
7227
7275
 
7228
- sig { returns(T.untyped) }
7276
+ sig { void }
7229
7277
  def class_under_test; end
7230
7278
 
7231
- sig { returns(T.untyped) }
7279
+ sig { void }
7232
7280
  def respond_like_instance_of; end
7233
7281
 
7234
- sig { returns(T.untyped) }
7282
+ sig { void }
7235
7283
  def respond_like; end
7236
7284
  end
7237
7285
 
7238
7286
  class TestClients < ClassTest
7239
7287
  extend Forwardable
7240
7288
 
7241
- sig { returns(T.untyped) }
7289
+ sig { void }
7242
7290
  def expect_client_created; end
7243
7291
 
7244
- sig { returns(T.untyped) }
7292
+ sig { void }
7245
7293
  def mock_client; end
7246
7294
 
7247
- sig { returns(T.untyped) }
7295
+ sig { void }
7248
7296
  def test_client; end
7249
7297
 
7250
- sig { returns(T.untyped) }
7298
+ sig { void }
7251
7299
  def class_under_test; end
7252
7300
  end
7253
7301
 
7254
7302
  # Test the Checkoff::CLI class with the help option
7255
7303
  class TestCLIHelp < Minitest::Test
7256
- sig { returns(T.untyped) }
7304
+ sig { void }
7257
7305
  def expect_workspaces_created; end
7258
7306
 
7259
- sig { returns(T.untyped) }
7307
+ sig { void }
7260
7308
  def expect_config_loaded; end
7261
7309
 
7262
- sig { returns(T.untyped) }
7310
+ sig { void }
7263
7311
  def expect_sections_created; end
7264
7312
 
7265
- sig { returns(T.untyped) }
7313
+ sig { void }
7266
7314
  def expect_tasks_created; end
7267
7315
 
7268
7316
  sig { returns(T.untyped) }
7269
7317
  def set_mocks; end
7270
7318
 
7271
- sig { params(twiddle_mocks: T.untyped).returns(T.untyped) }
7319
+ sig { params(twiddle_mocks: T.untyped).void }
7272
7320
  def get_test_object(&twiddle_mocks); end
7273
7321
 
7274
- sig { returns(T.untyped) }
7322
+ sig { void }
7275
7323
  def test_run_with_help_arg; end
7276
7324
  end
7277
7325
 
7278
7326
  # Test the Checkoff::CLI class with view subcommand
7279
7327
  class TestCLIView < Minitest::Test
7280
- sig { returns(T.untyped) }
7328
+ sig { void }
7281
7329
  def expected_json_no_section_specified; end
7282
7330
 
7283
- sig { returns(T.untyped) }
7331
+ sig { void }
7284
7332
  def section_name_str; end
7285
7333
 
7286
- sig { returns(T.untyped) }
7334
+ sig { void }
7287
7335
  def project_name; end
7288
7336
 
7289
- sig { returns(T.untyped) }
7337
+ sig { void }
7290
7338
  def task_name; end
7291
7339
 
7292
- sig { returns(T.untyped) }
7340
+ sig { void }
7293
7341
  def expect_tasks_by_section_pulled; end
7294
7342
 
7295
- sig { returns(T.untyped) }
7343
+ sig { void }
7296
7344
  def expect_client_pulled; end
7297
7345
 
7298
- sig { params(due_on: T.untyped, due_at: T.untyped).returns(T.untyped) }
7346
+ sig { params(due_on: T.untyped, due_at: T.untyped).void }
7299
7347
  def mock_run_with_no_section_specified_normal_project(due_on:, due_at:); end
7300
7348
 
7301
- sig { params(task: T.untyped, task_name: T.untyped).returns(T.untyped) }
7349
+ sig { params(task: T.untyped, task_name: T.untyped).void }
7302
7350
  def expect_task_named(task, task_name); end
7303
7351
 
7304
- sig { params(task: T.untyped, due_on: T.untyped).returns(T.untyped) }
7352
+ sig { params(task: T.untyped, due_on: T.untyped).void }
7305
7353
  def expect_task_due_on(task, due_on); end
7306
7354
 
7307
- sig { params(task: T.untyped, due_at: T.untyped).returns(T.untyped) }
7355
+ sig { params(task: T.untyped, due_at: T.untyped).void }
7308
7356
  def expect_task_due_at(task, due_at); end
7309
7357
 
7310
- sig { returns(T.untyped) }
7358
+ sig { void }
7311
7359
  def three_tasks; end
7312
7360
 
7313
7361
  sig do
@@ -7316,38 +7364,38 @@ class TestCLIView < Minitest::Test
7316
7364
  task_name: T.untyped,
7317
7365
  due_on: T.untyped,
7318
7366
  due_at: T.untyped
7319
- ).returns(T.untyped)
7367
+ ).void
7320
7368
  end
7321
7369
  def expect_task_queried(task, task_name, due_on, due_at); end
7322
7370
 
7323
7371
  sig { params(due_on: T.untyped, due_at: T.untyped).returns(T.untyped) }
7324
7372
  def expect_three_tasks_queried(due_on:, due_at:); end
7325
7373
 
7326
- sig { returns(T.untyped) }
7374
+ sig { void }
7327
7375
  def workspace_name; end
7328
7376
 
7329
- sig { returns(T.untyped) }
7377
+ sig { void }
7330
7378
  def allow_workspaces_created; end
7331
7379
 
7332
- sig { returns(T.untyped) }
7380
+ sig { void }
7333
7381
  def allow_config_loaded; end
7334
7382
 
7335
- sig { returns(T.untyped) }
7383
+ sig { void }
7336
7384
  def allow_sections_created; end
7337
7385
 
7338
- sig { returns(T.untyped) }
7386
+ sig { void }
7339
7387
  def allow_tasks_created; end
7340
7388
 
7341
- sig { returns(T.untyped) }
7389
+ sig { void }
7342
7390
  def allow_clients_created; end
7343
7391
 
7344
- sig { returns(T.untyped) }
7392
+ sig { void }
7345
7393
  def set_mocks; end
7346
7394
 
7347
- sig { params(_twiddle_mocks: T.untyped).returns(T.untyped) }
7395
+ sig { params(_twiddle_mocks: T.untyped).void }
7348
7396
  def get_test_object(&_twiddle_mocks); end
7349
7397
 
7350
- sig { returns(T.untyped) }
7398
+ sig { void }
7351
7399
  def test_run_with_no_section_specified_normal_project; end
7352
7400
 
7353
7401
  sig do
@@ -7356,7 +7404,7 @@ class TestCLIView < Minitest::Test
7356
7404
  section_name: T.untyped,
7357
7405
  due_on: T.untyped,
7358
7406
  due_at: T.untyped
7359
- ).returns(T.untyped)
7407
+ ).void
7360
7408
  end
7361
7409
  def expect_three_tasks_pulled_and_queried(project_name:, section_name:, due_on:, due_at:); end
7362
7410
 
@@ -7366,26 +7414,26 @@ class TestCLIView < Minitest::Test
7366
7414
  section_name: T.untyped,
7367
7415
  due_at: T.untyped,
7368
7416
  due_on: T.untyped
7369
- ).returns(T.untyped)
7417
+ ).void
7370
7418
  end
7371
7419
  def mock_view(project_name:, section_name:, due_at:, due_on:); end
7372
7420
 
7373
- sig { params(section_name: T.untyped).returns(T.untyped) }
7421
+ sig { params(section_name: T.untyped).void }
7374
7422
  def mock_view_specific_task(section_name:); end
7375
7423
 
7376
- sig { returns(T.untyped) }
7424
+ sig { void }
7377
7425
  def test_view_specific_task_nil_section; end
7378
7426
 
7379
- sig { returns(T.untyped) }
7427
+ sig { void }
7380
7428
  def test_view_specific_task; end
7381
7429
 
7382
- sig { returns(T.untyped) }
7430
+ sig { void }
7383
7431
  def expected_json_section_specified; end
7384
7432
 
7385
- sig { returns(T.untyped) }
7433
+ sig { void }
7386
7434
  def mock_view_run_with_section_specified_empty_section; end
7387
7435
 
7388
- sig { returns(T.untyped) }
7436
+ sig { void }
7389
7437
  def test_view_run_with_section_specified_empty_section; end
7390
7438
 
7391
7439
  sig { returns(T.untyped) }
@@ -7394,16 +7442,16 @@ class TestCLIView < Minitest::Test
7394
7442
  sig { returns(T.untyped) }
7395
7443
  def test_view_run_with_section_specified_normal_project_colon_project; end
7396
7444
 
7397
- sig { returns(T.untyped) }
7445
+ sig { void }
7398
7446
  def mock_view_run_with_section_specified_normal_project; end
7399
7447
 
7400
7448
  sig { returns(T.untyped) }
7401
7449
  def test_view_run_with_section_specified_normal_project; end
7402
7450
 
7403
- sig { returns(T.untyped) }
7451
+ sig { void }
7404
7452
  def mock_run_with_no_project_specified; end
7405
7453
 
7406
- sig { returns(T.untyped) }
7454
+ sig { void }
7407
7455
  def test_run_with_no_project_specified; end
7408
7456
 
7409
7457
  sig { returns(T.untyped) }
@@ -7412,7 +7460,7 @@ class TestCLIView < Minitest::Test
7412
7460
  sig { returns(T.untyped) }
7413
7461
  def test_view_not_due; end
7414
7462
 
7415
- sig { returns(T.untyped) }
7463
+ sig { void }
7416
7464
  def expected_json_view_due_at; end
7417
7465
 
7418
7466
  sig { returns(T.untyped) }
@@ -7443,55 +7491,55 @@ class TestProjects < BaseAsana
7443
7491
  late_late_evening: '22:33:20',
7444
7492
  }.freeze, T.untyped)
7445
7493
 
7446
- sig { returns(T.untyped) }
7494
+ sig { void }
7447
7495
  def setup_config; end
7448
7496
 
7449
- sig { returns(T.untyped) }
7497
+ sig { void }
7450
7498
  def setup_projects_pulled; end
7451
7499
 
7452
- sig { returns(T.untyped) }
7500
+ sig { void }
7453
7501
  def sample_projects; end
7454
7502
 
7455
7503
  sig { params(workspace_gid: T.untyped).returns(T.untyped) }
7456
7504
  def setup_projects_queried(workspace_gid: my_workspace_gid); end
7457
7505
 
7458
- sig { params(options: T.untyped).returns(T.untyped) }
7506
+ sig { params(options: T.untyped).void }
7459
7507
  def expect_tasks_found(options:); end
7460
7508
 
7461
- sig { params(options: T.untyped).returns(T.untyped) }
7509
+ sig { params(options: T.untyped).void }
7462
7510
  def mock_tasks_from_project(options:); end
7463
7511
 
7464
- sig { returns(T.untyped) }
7512
+ sig { void }
7465
7513
  def test_tasks_from_project_not_only_uncompleted; end
7466
7514
 
7467
- sig { returns(T.untyped) }
7515
+ sig { void }
7468
7516
  def test_tasks_from_project; end
7469
7517
 
7470
- sig { returns(T.untyped) }
7518
+ sig { void }
7471
7519
  def test_active_tasks; end
7472
7520
 
7473
- sig { returns(T.untyped) }
7521
+ sig { void }
7474
7522
  def setup_workspace_pulled; end
7475
7523
 
7476
- sig { returns(T.untyped) }
7524
+ sig { void }
7477
7525
  def setup_user_task_list_pulled; end
7478
7526
 
7479
- sig { returns(T.untyped) }
7527
+ sig { void }
7480
7528
  def mock_project_or_raise_unknown; end
7481
7529
 
7482
- sig { returns(T.untyped) }
7530
+ sig { void }
7483
7531
  def test_project_or_raise_unknown; end
7484
7532
 
7485
7533
  sig { returns(T.untyped) }
7486
7534
  def test_project_by_gid; end
7487
7535
 
7488
- sig { returns(T.untyped) }
7536
+ sig { void }
7489
7537
  def test_project_or_raise_my_tasks; end
7490
7538
 
7491
7539
  sig { returns(T.untyped) }
7492
7540
  def mock_project_my_tasks; end
7493
7541
 
7494
- sig { returns(T.untyped) }
7542
+ sig { void }
7495
7543
  def test_project_my_tasks; end
7496
7544
 
7497
7545
  sig { returns(T.untyped) }
@@ -7500,16 +7548,16 @@ class TestProjects < BaseAsana
7500
7548
  sig { returns(T.untyped) }
7501
7549
  def mock_test_in_period; end
7502
7550
 
7503
- sig { returns(T.untyped) }
7551
+ sig { void }
7504
7552
  def test_in_period; end
7505
7553
 
7506
- sig { returns(T.untyped) }
7554
+ sig { void }
7507
7555
  def mock_project_ready; end
7508
7556
 
7509
- sig { returns(T.untyped) }
7557
+ sig { void }
7510
7558
  def test_project_ready; end
7511
7559
 
7512
- sig { returns(T.untyped) }
7560
+ sig { void }
7513
7561
  def class_under_test; end
7514
7562
  end
7515
7563
 
@@ -7537,67 +7585,67 @@ class TestSections < BaseAsana
7537
7585
  late_late_evening: '22:33:20',
7538
7586
  }.freeze, T.untyped)
7539
7587
 
7540
- sig { returns(T.untyped) }
7588
+ sig { void }
7541
7589
  def test_section_task_names_no_tasks; end
7542
7590
 
7543
7591
  sig { returns(T.untyped) }
7544
7592
  def projects; end
7545
7593
 
7546
- sig { returns(T.untyped) }
7594
+ sig { void }
7547
7595
  def test_section_task_names; end
7548
7596
 
7549
- sig { returns(T.untyped) }
7597
+ sig { void }
7550
7598
  def mock_sections_or_raise; end
7551
7599
 
7552
- sig { returns(T.untyped) }
7600
+ sig { void }
7553
7601
  def test_sections_or_raise; end
7554
7602
 
7555
- sig { returns(T.untyped) }
7603
+ sig { void }
7556
7604
  def test_sections_or_raise_nil_project_name; end
7557
7605
 
7558
- sig { params(project: T.untyped, tasks_arr: T.untyped, active_tasks_arr: T.untyped).returns(T.untyped) }
7606
+ sig { params(project: T.untyped, tasks_arr: T.untyped, active_tasks_arr: T.untyped).void }
7559
7607
  def expect_my_tasks_pulled(project, tasks_arr, active_tasks_arr); end
7560
7608
 
7561
- sig { params(section: T.untyped, name: T.untyped).returns(T.untyped) }
7609
+ sig { params(section: T.untyped, name: T.untyped).void }
7562
7610
  def expect_section_named(section, name); end
7563
7611
 
7564
- sig { params(task: T.untyped, section: T.untyped).returns(T.untyped) }
7612
+ sig { params(task: T.untyped, section: T.untyped).void }
7565
7613
  def expect_assignee_section_pulled(task, section); end
7566
7614
 
7567
- sig { returns(T.untyped) }
7615
+ sig { void }
7568
7616
  def expect_my_tasks_sections_pulled; end
7569
7617
 
7570
7618
  sig { returns(T.untyped) }
7571
7619
  def expect_my_tasks_tasks_pulled; end
7572
7620
 
7573
- sig { returns(T.untyped) }
7621
+ sig { void }
7574
7622
  def mock_tasks_by_section_my_tasks; end
7575
7623
 
7576
- sig { returns(T.untyped) }
7624
+ sig { void }
7577
7625
  def test_tasks_by_section_my_tasks; end
7578
7626
 
7579
7627
  sig { returns(T.untyped) }
7580
7628
  def test_tasks_by_section_nil_workspace_name; end
7581
7629
 
7582
- sig { returns(T.untyped) }
7630
+ sig { void }
7583
7631
  def test_tasks_by_section_nil_project_name; end
7584
7632
 
7585
- sig { returns(T.untyped) }
7633
+ sig { void }
7586
7634
  def test_tasks_by_section_some_in_empty_section; end
7587
7635
 
7588
- sig { returns(T.untyped) }
7636
+ sig { void }
7589
7637
  def expect_project_a_tasks_pulled; end
7590
7638
 
7591
7639
  sig { returns(T.untyped) }
7592
7640
  def test_tasks_by_section; end
7593
7641
 
7594
- sig { params(task: T.untyped, name: T.untyped).returns(T.untyped) }
7642
+ sig { params(task: T.untyped, name: T.untyped).void }
7595
7643
  def expect_named(task, name); end
7596
7644
 
7597
- sig { params(project: T.untyped, tasks_arr: T.untyped, active_tasks_arr: T.untyped).returns(T.untyped) }
7645
+ sig { params(project: T.untyped, tasks_arr: T.untyped, active_tasks_arr: T.untyped).void }
7598
7646
  def expect_tasks_pulled(project, tasks_arr, active_tasks_arr); end
7599
7647
 
7600
- sig { params(workspace: T.untyped, project: T.untyped, project_name: T.untyped).returns(T.untyped) }
7648
+ sig { params(workspace: T.untyped, project: T.untyped, project_name: T.untyped).void }
7601
7649
  def expect_project_pulled(workspace, project, project_name); end
7602
7650
 
7603
7651
  sig { returns(T.untyped) }
@@ -7619,25 +7667,25 @@ class TestSections < BaseAsana
7619
7667
  end
7620
7668
  def expect_tasks_and_sections_pulled(workspace, project, project_name, section_name); end
7621
7669
 
7622
- sig { params(project: T.untyped, gid: T.untyped).returns(T.untyped) }
7670
+ sig { params(project: T.untyped, gid: T.untyped).void }
7623
7671
  def expect_project_gid_pulled(project, gid); end
7624
7672
 
7625
7673
  sig { returns(T.untyped) }
7626
7674
  def expect_sections_client_pulled; end
7627
7675
 
7628
- sig { params(project_gid: T.untyped, sections_array: T.untyped).returns(T.untyped) }
7676
+ sig { params(project_gid: T.untyped, sections_array: T.untyped).void }
7629
7677
  def expect_project_sections_pulled(project_gid, sections_array); end
7630
7678
 
7631
- sig { returns(T.untyped) }
7679
+ sig { void }
7632
7680
  def original_task_options; end
7633
7681
 
7634
7682
  sig { params(only_uncompleted: T.untyped).returns(T.untyped) }
7635
7683
  def fixed_task_options(only_uncompleted:); end
7636
7684
 
7637
- sig { params(section_gid: T.untyped, task_list: T.untyped, only_uncompleted: T.untyped).returns(T.untyped) }
7685
+ sig { params(section_gid: T.untyped, task_list: T.untyped, only_uncompleted: T.untyped).void }
7638
7686
  def expect_tasks_api_called_for_section(section_gid, task_list, only_uncompleted:); end
7639
7687
 
7640
- sig { returns(T.untyped) }
7688
+ sig { void }
7641
7689
  def expect_section_1_gid_pulled; end
7642
7690
 
7643
7691
  sig { returns(T.untyped) }
@@ -7656,7 +7704,7 @@ class TestSections < BaseAsana
7656
7704
  end
7657
7705
  def expect_section_tasks_pulled(section, section_gid, task_list, only_uncompleted:); end
7658
7706
 
7659
- sig { returns(T.untyped) }
7707
+ sig { void }
7660
7708
  def test_tasks_not_only_uncompleted; end
7661
7709
 
7662
7710
  sig { returns(T.untyped) }
@@ -7668,16 +7716,16 @@ class TestSections < BaseAsana
7668
7716
  sig { returns(T.untyped) }
7669
7717
  def allow_empty_section_name_pulled; end
7670
7718
 
7671
- sig { params(only_uncompleted: T.untyped).returns(T.untyped) }
7719
+ sig { params(only_uncompleted: T.untyped).void }
7672
7720
  def mock_tasks_normal_project(only_uncompleted:); end
7673
7721
 
7674
7722
  sig { returns(T.untyped) }
7675
7723
  def test_tasks_normal_project; end
7676
7724
 
7677
- sig { returns(T.untyped) }
7725
+ sig { void }
7678
7726
  def test_tasks_by_section_gid; end
7679
7727
 
7680
- sig { returns(T.untyped) }
7728
+ sig { void }
7681
7729
  def test_tasks_by_section_also_completed; end
7682
7730
 
7683
7731
  sig { returns(T.untyped) }
@@ -7692,35 +7740,35 @@ class TestSections < BaseAsana
7692
7740
  sig { returns(T.untyped) }
7693
7741
  def test_tasks_project_not_found; end
7694
7742
 
7695
- sig { returns(T.untyped) }
7743
+ sig { void }
7696
7744
  def test_previous_section; end
7697
7745
 
7698
7746
  sig { returns(T.untyped) }
7699
7747
  def test_previous_section_on_inbox_returns_nil; end
7700
7748
 
7701
- sig { returns(T.untyped) }
7749
+ sig { void }
7702
7750
  def test_section_by_gid; end
7703
7751
 
7704
- sig { returns(T.untyped) }
7752
+ sig { void }
7705
7753
  def test_section_by_gid_bad_server_data; end
7706
7754
 
7707
- sig { returns(T.untyped) }
7755
+ sig { void }
7708
7756
  def respond_like_instance_of; end
7709
7757
 
7710
- sig { returns(T.untyped) }
7758
+ sig { void }
7711
7759
  def respond_like; end
7712
7760
 
7713
- sig { returns(T.untyped) }
7761
+ sig { void }
7714
7762
  def class_under_test; end
7715
7763
  end
7716
7764
 
7717
7765
  class TestSubtasks < ClassTest
7718
7766
  extend Forwardable
7719
7767
 
7720
- sig { returns(T.untyped) }
7768
+ sig { void }
7721
7769
  def task_options; end
7722
7770
 
7723
- sig { returns(T.untyped) }
7771
+ sig { void }
7724
7772
  def subtask_options; end
7725
7773
 
7726
7774
  # refute(subtasks.all_subtasks_completed?(task))
@@ -7728,7 +7776,7 @@ class TestSubtasks < ClassTest
7728
7776
  sig { params(active_subtasks: T.untyped).returns(T.untyped) }
7729
7777
  def expect_active_subtasks_pulled(active_subtasks); end
7730
7778
 
7731
- sig { returns(T.untyped) }
7779
+ sig { void }
7732
7780
  def allow_all_section_status_queried; end
7733
7781
 
7734
7782
  # assert(subtasks.all_subtasks_completed?(task))
@@ -7736,183 +7784,183 @@ class TestSubtasks < ClassTest
7736
7784
  sig { params(subtask: T.untyped, result: T.untyped).returns(T.untyped) }
7737
7785
  def allow_subtask_section_status_queried(subtask, result); end
7738
7786
 
7739
- # assert_equal(subtasks.subtask_section?(subtask), is_rendered_as_separator)
7740
- # end
7741
- sig { returns(T.untyped) }
7787
+ sig { void }
7742
7788
  def allow_subtask_section_1_named; end
7743
7789
 
7744
- sig { returns(T.untyped) }
7790
+ sig { void }
7745
7791
  def allow_subtask_section_2_named; end
7746
7792
 
7747
- sig { returns(T.untyped) }
7793
+ sig { void }
7748
7794
  def allow_subtask_section_3_named; end
7749
7795
 
7750
- sig { returns(T.untyped) }
7796
+ sig { void }
7751
7797
  def allow_subtask_names_queried; end
7752
7798
 
7753
- sig { returns(T.untyped) }
7799
+ sig { void }
7754
7800
  def mock_by_section; end
7755
7801
 
7756
- # assert_equal('More than one section named 1:', e.message)
7757
- # end
7758
- sig { returns(T.untyped) }
7802
+ sig { void }
7759
7803
  def expect_raw_subtasks_pulled; end
7760
7804
 
7761
- # refute_nil subtasks
7762
- # end
7763
- sig { returns(T.untyped) }
7805
+ sig { void }
7764
7806
  def class_under_test; end
7765
7807
 
7766
- sig { returns(T.untyped) }
7808
+ sig { void }
7767
7809
  def respond_like_instance_of; end
7768
7810
 
7769
- sig { returns(T.untyped) }
7811
+ sig { void }
7770
7812
  def respond_like; end
7771
7813
  end
7772
7814
 
7773
7815
  class TestTimelines < ClassTest
7774
7816
  extend Forwardable
7775
7817
 
7776
- sig { returns(T.untyped) }
7818
+ sig { void }
7777
7819
  def test_task_dependent_on_previous_section_last_milestone_no_memberships; end
7778
7820
 
7779
- sig { returns(T.untyped) }
7821
+ sig { void }
7780
7822
  def mock_task_dependent_on_previous_section_last_milestone_false_no_dependencies; end
7781
7823
 
7782
- sig { returns(T.untyped) }
7824
+ sig { void }
7783
7825
  def test_task_dependent_on_previous_section_last_milestone_false_no_dependencies_; end
7784
7826
 
7785
- sig { params(task: T.untyped, task_data: T.untyped).returns(T.untyped) }
7827
+ sig { params(task: T.untyped, task_data: T.untyped).void }
7786
7828
  def expect_task_data_created(task, task_data); end
7787
7829
 
7788
7830
  sig { returns(T.untyped) }
7789
7831
  def expect_section_2_pulled; end
7790
7832
 
7791
- sig { returns(T.untyped) }
7833
+ sig { void }
7792
7834
  def expect_section_2_previous_section_called; end
7793
7835
 
7794
- sig { returns(T.untyped) }
7836
+ sig { void }
7795
7837
  def expect_section_1_gid_pulled; end
7796
7838
 
7797
- sig { returns(T.untyped) }
7839
+ sig { void }
7798
7840
  def expect_no_section_1_tasks; end
7799
7841
 
7800
- sig { returns(T.untyped) }
7842
+ sig { void }
7801
7843
  def mock_task_dependent_on_previous_section_last_milestone_true_no_tasks; end
7802
7844
 
7803
- sig { returns(T.untyped) }
7845
+ sig { void }
7804
7846
  def test_task_dependent_on_previous_section_last_milestone_true_no_tasks; end
7805
7847
 
7806
- sig { returns(T.untyped) }
7848
+ sig { void }
7807
7849
  def expect_section_1_tasks_pulled; end
7808
7850
 
7809
- sig { returns(T.untyped) }
7851
+ sig { void }
7810
7852
  def expect_milestone_queried; end
7811
7853
 
7812
- sig { returns(T.untyped) }
7854
+ sig { void }
7813
7855
  def mock_task_dependent_on_previous_section_last_milestone_true; end
7814
7856
 
7815
7857
  sig { returns(T.untyped) }
7816
7858
  def test_task_dependent_on_previous_section_last_milestone_true; end
7817
7859
 
7818
- sig { returns(T.untyped) }
7860
+ sig { void }
7819
7861
  def mock_task_dependent_on_previous_section_last_milestone_false_no_previous_section; end
7820
7862
 
7821
- sig { returns(T.untyped) }
7863
+ sig { void }
7822
7864
  def test_task_dependent_on_previous_section_last_milestone_false_no_previous_section; end
7823
7865
 
7824
- sig { returns(T.untyped) }
7866
+ sig { void }
7825
7867
  def test_last_task_milestone_depends_on_this_task_no_memberships; end
7826
7868
 
7827
7869
  sig { params(task: T.untyped, dependents: T.untyped).returns(T.untyped) }
7828
7870
  def expect_all_dependent_tasks_pulled(task, dependents); end
7829
7871
 
7830
- sig { params(task: T.untyped, memberships: T.untyped).returns(T.untyped) }
7872
+ sig { params(task: T.untyped, memberships: T.untyped).void }
7831
7873
  def expect_memberships_pulled(task, memberships); end
7832
7874
 
7833
- sig { params(tasks: T.untyped).returns(T.untyped) }
7875
+ sig { params(tasks: T.untyped).void }
7834
7876
  def expect_tasks_by_section_gid_pulled(tasks); end
7835
7877
 
7836
- sig { returns(T.untyped) }
7878
+ sig { void }
7837
7879
  def expect_milestone_details_pulled; end
7838
7880
 
7839
- sig { returns(T.untyped) }
7881
+ sig { void }
7840
7882
  def expect_task_gid_pulled; end
7841
7883
 
7842
- sig { returns(T.untyped) }
7884
+ sig { void }
7843
7885
  def test_last_task_milestone_depends_on_this_task_false; end
7844
7886
 
7845
- sig { returns(T.untyped) }
7887
+ sig { void }
7846
7888
  def test_last_task_milestone_depends_on_this_task_no_milestone; end
7847
7889
 
7848
- sig { returns(T.untyped) }
7890
+ sig { void }
7849
7891
  def test_last_task_milestone_depends_on_this_task_is_last_milestone; end
7850
7892
 
7851
- sig { params(projects: T.untyped).returns(T.untyped) }
7893
+ sig { params(projects: T.untyped).void }
7852
7894
  def export_portfolio_projects_pulled(projects); end
7853
7895
 
7854
- sig { returns(T.untyped) }
7896
+ sig { void }
7855
7897
  def test_last_task_milestone_depends_on_this_task_is_last_milestone_limited_to_portfolio_no_projects; end
7856
7898
 
7857
- sig { returns(T.untyped) }
7899
+ sig { void }
7858
7900
  def mock_last_task_milestone_depends_on_this_task_is_last_milestone_limited_to_portfolio; end
7859
7901
 
7860
- sig { returns(T.untyped) }
7902
+ sig { void }
7861
7903
  def test_last_task_milestone_depends_on_this_task_is_last_milestone_limited_to_portfolio; end
7862
7904
 
7863
- sig { returns(T.untyped) }
7905
+ sig { void }
7864
7906
  def test_init; end
7865
7907
 
7866
- sig { returns(T.untyped) }
7908
+ sig { void }
7867
7909
  def class_under_test; end
7868
7910
 
7869
- sig { returns(T.untyped) }
7911
+ sig { void }
7870
7912
  def respond_like_instance_of; end
7871
7913
 
7872
- sig { returns(T.untyped) }
7914
+ sig { void }
7873
7915
  def respond_like; end
7916
+
7917
+ sig { void }
7918
+ def test_any_milestone_depends_on_this_task_false; end
7919
+
7920
+ sig { void }
7921
+ def test_any_milestone_depends_on_this_task_true; end
7874
7922
  end
7875
7923
 
7876
7924
  class TestPortfolios < ClassTest
7877
7925
  extend Forwardable
7878
7926
 
7879
- sig { returns(T.untyped) }
7927
+ sig { void }
7880
7928
  def test_portfolio_or_raise_raises; end
7881
7929
 
7882
- sig { returns(T.untyped) }
7930
+ sig { void }
7883
7931
  def test_portfolio_or_raise; end
7884
7932
 
7885
7933
  sig { returns(T.untyped) }
7886
7934
  def expect_workspace_pulled; end
7887
7935
 
7888
- sig { returns(T.untyped) }
7936
+ sig { void }
7889
7937
  def allow_portfolios_named; end
7890
7938
 
7891
- sig { returns(T.untyped) }
7939
+ sig { void }
7892
7940
  def expect_portfolios_api_pulled; end
7893
7941
 
7894
- sig { returns(T.untyped) }
7942
+ sig { void }
7895
7943
  def expect_me_gid_pulled; end
7896
7944
 
7897
7945
  sig { params(portfolio_arr: T.untyped).returns(T.untyped) }
7898
7946
  def expect_portfolios_pulled(portfolio_arr); end
7899
7947
 
7900
- sig { returns(T.untyped) }
7948
+ sig { void }
7901
7949
  def test_portfolio; end
7902
7950
 
7903
- sig { returns(T.untyped) }
7951
+ sig { void }
7904
7952
  def test_portfolio_by_gid; end
7905
7953
 
7906
- sig { returns(T.untyped) }
7954
+ sig { void }
7907
7955
  def test_projects_in_portfolios; end
7908
7956
 
7909
- sig { returns(T.untyped) }
7957
+ sig { void }
7910
7958
  def class_under_test; end
7911
7959
 
7912
- sig { returns(T.untyped) }
7960
+ sig { void }
7913
7961
  def respond_like_instance_of; end
7914
7962
 
7915
- sig { returns(T.untyped) }
7963
+ sig { void }
7916
7964
  def respond_like; end
7917
7965
  end
7918
7966
 
@@ -7940,74 +7988,86 @@ class TestWorkspaces < BaseAsana
7940
7988
  late_late_evening: '22:33:20',
7941
7989
  }.freeze, T.untyped)
7942
7990
 
7943
- sig { returns(T.untyped) }
7991
+ sig { void }
7944
7992
  def mock_workspace_or_raise_nil; end
7945
7993
 
7946
- sig { returns(T.untyped) }
7994
+ sig { void }
7947
7995
  def test_workspace_or_raise_nil; end
7948
7996
 
7949
- sig { returns(T.untyped) }
7997
+ sig { void }
7950
7998
  def mock_workspace_or_raise; end
7951
7999
 
7952
- sig { returns(T.untyped) }
8000
+ sig { void }
7953
8001
  def test_workspace_or_raise; end
7954
8002
 
7955
- sig { returns(T.untyped) }
8003
+ sig { void }
7956
8004
  def expect_default_workspace_gid_config_fetched; end
7957
8005
 
7958
- sig { returns(T.untyped) }
8006
+ sig { void }
7959
8007
  def test_default_workspace_gid; end
7960
8008
 
7961
- sig { returns(T.untyped) }
8009
+ sig { void }
7962
8010
  def test_default_workspace; end
7963
8011
 
7964
- sig { returns(T.untyped) }
8012
+ sig { void }
7965
8013
  def class_under_test; end
7966
8014
  end
7967
8015
 
7968
8016
  class TestAttachments < ClassTest
7969
8017
  extend Forwardable
7970
8018
 
7971
- sig { params(url: T.untyped).returns(T.untyped) }
8019
+ sig { params(url: T.untyped).void }
7972
8020
  def mock_create_attachment_from_url(url); end
7973
8021
 
7974
- sig { returns(T.untyped) }
8022
+ sig { void }
7975
8023
  def test_create_attachment_from_url; end
7976
8024
 
7977
- sig { returns(T.untyped) }
8025
+ sig { void }
7978
8026
  def class_under_test; end
7979
8027
 
7980
- sig { returns(T.untyped) }
8028
+ sig { void }
7981
8029
  def respond_like_instance_of; end
7982
8030
 
7983
- sig { returns(T.untyped) }
8031
+ sig { void }
7984
8032
  def respond_like; end
8033
+
8034
+ # _@param_ `gid`
8035
+ #
8036
+ # _@param_ `url`
8037
+ sig { params(gid: String, url: String).returns(Mocha::Mock) }
8038
+ def expect_run_on_attachment(gid, url); end
8039
+
8040
+ sig { returns(String) }
8041
+ def capture_attachments_run; end
8042
+
8043
+ sig { void }
8044
+ def test_run; end
7985
8045
  end
7986
8046
 
7987
8047
  # double to inject cache_method, pretending to be cache_method gem
7988
8048
  class Class
7989
- sig { params(method_id: T.untyped, _ttl: T.untyped).returns(T.untyped) }
8049
+ sig { params(method_id: T.untyped, _ttl: T.untyped).void }
7990
8050
  def cache_method(method_id, _ttl = nil); end
7991
8051
  end
7992
8052
 
7993
8053
  # double to inject cache_method_clear, pretending to be cache_method gem
7994
8054
  module Kernel
7995
- sig { params(_method_id: T.untyped).returns(T.untyped) }
8055
+ sig { params(_method_id: T.untyped).void }
7996
8056
  def cache_method_clear(_method_id); end
7997
8057
  end
7998
8058
 
7999
8059
  # Test the Checkoff::CLI class with quickadd subcommand
8000
8060
  class TestCLIQuickadd < Minitest::Test
8001
- sig { returns(T.untyped) }
8061
+ sig { void }
8002
8062
  def workspace_name; end
8003
8063
 
8004
- sig { returns(T.untyped) }
8064
+ sig { void }
8005
8065
  def expect_workspaces_created; end
8006
8066
 
8007
- sig { returns(T.untyped) }
8067
+ sig { void }
8008
8068
  def expect_config_loaded; end
8009
8069
 
8010
- sig { returns(T.untyped) }
8070
+ sig { void }
8011
8071
  def expect_sections_created; end
8012
8072
 
8013
8073
  sig { returns(T.untyped) }
@@ -8016,38 +8076,38 @@ class TestCLIQuickadd < Minitest::Test
8016
8076
  sig { returns(T.untyped) }
8017
8077
  def set_mocks; end
8018
8078
 
8019
- sig { params(_twiddle_mocks: T.untyped).returns(T.untyped) }
8079
+ sig { params(_twiddle_mocks: T.untyped).void }
8020
8080
  def get_test_object(&_twiddle_mocks); end
8021
8081
 
8022
- sig { returns(T.untyped) }
8082
+ sig { void }
8023
8083
  def mock_quickadd; end
8024
8084
 
8025
- sig { returns(T.untyped) }
8085
+ sig { void }
8026
8086
  def test_quickadd; end
8027
8087
  end
8028
8088
 
8029
8089
  class TestCustomFields < ClassTest
8030
8090
  extend Forwardable
8031
8091
 
8032
- sig { returns(T.untyped) }
8092
+ sig { void }
8033
8093
  def test_custom_field_or_raise_raises; end
8034
8094
 
8035
- sig { returns(T.untyped) }
8095
+ sig { void }
8036
8096
  def test_custom_field_or_raise; end
8037
8097
 
8038
8098
  sig { returns(T.untyped) }
8039
8099
  def expect_workspace_pulled; end
8040
8100
 
8041
- sig { returns(T.untyped) }
8101
+ sig { void }
8042
8102
  def allow_custom_fields_named; end
8043
8103
 
8044
- sig { params(custom_field_arr: T.untyped).returns(T.untyped) }
8104
+ sig { params(custom_field_arr: T.untyped).void }
8045
8105
  def expect_custom_fields_pulled(custom_field_arr); end
8046
8106
 
8047
- sig { returns(T.untyped) }
8107
+ sig { void }
8048
8108
  def test_custom_field; end
8049
8109
 
8050
- sig { returns(T.untyped) }
8110
+ sig { void }
8051
8111
  def class_under_test; end
8052
8112
  end
8053
8113
 
@@ -8055,10 +8115,10 @@ end
8055
8115
  class TestMvSubcommand < ClassTest
8056
8116
  extend Forwardable
8057
8117
 
8058
- sig { params(arg: T.untyped).returns(T.untyped) }
8118
+ sig { params(arg: T.untyped).void }
8059
8119
  def argument_to_name(arg); end
8060
8120
 
8061
- sig { params(workspace_name: T.untyped, project_name: T.untyped, project: T.untyped).returns(T.untyped) }
8121
+ sig { params(workspace_name: T.untyped, project_name: T.untyped, project: T.untyped).void }
8062
8122
  def expect_project_pulled(workspace_name, project_name, project); end
8063
8123
 
8064
8124
  sig do
@@ -8067,7 +8127,7 @@ class TestMvSubcommand < ClassTest
8067
8127
  project_name: T.untyped,
8068
8128
  section_name: T.untyped,
8069
8129
  section: T.untyped
8070
- ).returns(T.untyped)
8130
+ ).void
8071
8131
  end
8072
8132
  def expect_section_pulled(workspace_name, project_name, section_name, section); end
8073
8133
 
@@ -8077,98 +8137,98 @@ class TestMvSubcommand < ClassTest
8077
8137
  project_name: T.untyped,
8078
8138
  section_name: T.untyped,
8079
8139
  tasks: T.untyped
8080
- ).returns(T.untyped)
8140
+ ).void
8081
8141
  end
8082
8142
  def expect_tasks_pulled(workspace_name, project_name, section_name, tasks); end
8083
8143
 
8084
- sig { params(task: T.untyped, task_name: T.untyped).returns(T.untyped) }
8144
+ sig { params(task: T.untyped, task_name: T.untyped).void }
8085
8145
  def expect_task_named(task, task_name); end
8086
8146
 
8087
- sig { params(section: T.untyped, section_name: T.untyped).returns(T.untyped) }
8147
+ sig { params(section: T.untyped, section_name: T.untyped).void }
8088
8148
  def expect_section_named(section, section_name); end
8089
8149
 
8090
- sig { params(project: T.untyped, project_gid: T.untyped).returns(T.untyped) }
8150
+ sig { params(project: T.untyped, project_gid: T.untyped).void }
8091
8151
  def expect_project_gid_pulled(project, project_gid); end
8092
8152
 
8093
- sig { params(section: T.untyped, section_gid: T.untyped).returns(T.untyped) }
8153
+ sig { params(section: T.untyped, section_gid: T.untyped).void }
8094
8154
  def expect_section_gid_pulled(section, section_gid); end
8095
8155
 
8096
- sig { params(task: T.untyped, project_gid: T.untyped, section_gid: T.untyped).returns(T.untyped) }
8156
+ sig { params(task: T.untyped, project_gid: T.untyped, section_gid: T.untyped).void }
8097
8157
  def expect_task_added_to_project(task, project_gid, section_gid); end
8098
8158
 
8099
- sig { returns(T.untyped) }
8159
+ sig { void }
8100
8160
  def allow_logger_used; end
8101
8161
 
8102
- sig { returns(T.untyped) }
8162
+ sig { void }
8103
8163
  def set_initializer_arguments; end
8104
8164
 
8105
- sig { params(from_workspace_arg: T.untyped, to_workspace_arg: T.untyped).returns(T.untyped) }
8165
+ sig { params(from_workspace_arg: T.untyped, to_workspace_arg: T.untyped).void }
8106
8166
  def determine_to_workspace_name(from_workspace_arg, to_workspace_arg); end
8107
8167
 
8108
- sig { params(from_project_name: T.untyped, to_project_arg: T.untyped).returns(T.untyped) }
8168
+ sig { params(from_project_name: T.untyped, to_project_arg: T.untyped).void }
8109
8169
  def determine_to_project_name(from_project_name, to_project_arg); end
8110
8170
 
8111
- sig { params(from_section_name: T.untyped, to_section_arg: T.untyped).returns(T.untyped) }
8171
+ sig { params(from_section_name: T.untyped, to_section_arg: T.untyped).void }
8112
8172
  def determine_to_section_name(from_section_name, to_section_arg); end
8113
8173
 
8114
- sig { params(task: T.untyped, task_name: T.untyped).returns(T.untyped) }
8174
+ sig { params(task: T.untyped, task_name: T.untyped).void }
8115
8175
  def expect_task_added_to_section(task, task_name); end
8116
8176
 
8117
- sig { returns(T.untyped) }
8177
+ sig { void }
8118
8178
  def set_names; end
8119
8179
 
8120
- sig { returns(T.untyped) }
8180
+ sig { void }
8121
8181
  def expect_to_objects_pulled; end
8122
8182
 
8123
- sig { returns(T.untyped) }
8183
+ sig { void }
8124
8184
  def expect_run; end
8125
8185
 
8126
- sig { returns(T.untyped) }
8186
+ sig { void }
8127
8187
  def mock_run_to_different_workspace; end
8128
8188
 
8129
- sig { returns(T.untyped) }
8189
+ sig { void }
8130
8190
  def test_run_to_different_workspace; end
8131
8191
 
8132
- sig { returns(T.untyped) }
8192
+ sig { void }
8133
8193
  def mock_run_from_all_sections; end
8134
8194
 
8135
- sig { returns(T.untyped) }
8195
+ sig { void }
8136
8196
  def test_run_from_all_sections; end
8137
8197
 
8138
- sig { returns(T.untyped) }
8198
+ sig { void }
8139
8199
  def mock_run_from_regular_project; end
8140
8200
 
8141
- sig { returns(T.untyped) }
8201
+ sig { void }
8142
8202
  def test_run_from_regular_project; end
8143
8203
 
8144
- sig { returns(T.untyped) }
8204
+ sig { void }
8145
8205
  def mock_run_to_same_section_different_project; end
8146
8206
 
8147
- sig { returns(T.untyped) }
8207
+ sig { void }
8148
8208
  def test_run_to_same_section_different_project; end
8149
8209
 
8150
- sig { returns(T.untyped) }
8210
+ sig { void }
8151
8211
  def mock_run_with_explicit_to_project; end
8152
8212
 
8153
- sig { returns(T.untyped) }
8213
+ sig { void }
8154
8214
  def test_run_with_explicit_to_project; end
8155
8215
 
8156
- sig { returns(T.untyped) }
8216
+ sig { void }
8157
8217
  def mock_run_from_my_tasks; end
8158
8218
 
8159
- sig { returns(T.untyped) }
8219
+ sig { void }
8160
8220
  def test_run_from_my_tasks; end
8161
8221
 
8162
- sig { returns(T.untyped) }
8222
+ sig { void }
8163
8223
  def mock_init_default_workspace_not_implemented; end
8164
8224
 
8165
- sig { returns(T.untyped) }
8225
+ sig { void }
8166
8226
  def test_init_default_workspace_not_implemented; end
8167
8227
 
8168
- sig { returns(T.untyped) }
8228
+ sig { void }
8169
8229
  def test_init; end
8170
8230
 
8171
- sig { returns(T.untyped) }
8231
+ sig { void }
8172
8232
  def class_under_test; end
8173
8233
 
8174
8234
  # Returns the value of attribute from_workspace_arg.
@@ -8223,56 +8283,66 @@ end
8223
8283
  class TestTaskSearches < ClassTest
8224
8284
  extend Forwardable
8225
8285
 
8226
- sig { returns(T.untyped) }
8286
+ sig { void }
8227
8287
  def expect_workspace_pulled; end
8228
8288
 
8229
- sig { returns(T.untyped) }
8289
+ sig { void }
8230
8290
  def expect_workspace_gid_pulled; end
8231
8291
 
8232
- sig { returns(T.untyped) }
8292
+ sig { void }
8233
8293
  def expect_convert_params_called; end
8234
8294
 
8235
- sig { returns(T.untyped) }
8295
+ sig { void }
8236
8296
  def default_fields; end
8237
8297
 
8238
8298
  sig { returns(T.untyped) }
8239
8299
  def expect_client_get_called; end
8240
8300
 
8241
- sig { returns(T.untyped) }
8301
+ sig { void }
8242
8302
  def expect_search_response_queried; end
8243
8303
 
8244
8304
  sig { params(response_array: T.untyped).returns(T.untyped) }
8245
8305
  def expect_response_wrapped(response_array); end
8246
8306
 
8247
- sig { returns(T.untyped) }
8307
+ sig { void }
8248
8308
  def expect_tasks_filtered; end
8249
8309
 
8250
- sig { returns(T.untyped) }
8310
+ sig { void }
8251
8311
  def expect_task_selector_queried; end
8252
8312
 
8253
- sig { returns(T.untyped) }
8313
+ sig { void }
8254
8314
  def mock_task_search; end
8255
8315
 
8256
- sig { returns(T.untyped) }
8316
+ sig { void }
8257
8317
  def projects; end
8258
8318
 
8259
- sig { returns(T.untyped) }
8319
+ sig { void }
8260
8320
  def test_task_search; end
8261
8321
 
8262
- sig { returns(T.untyped) }
8322
+ sig { void }
8263
8323
  def mock_task_search_overloaded; end
8264
8324
 
8265
- sig { returns(T.untyped) }
8325
+ sig { void }
8266
8326
  def test_as_cache_key; end
8267
8327
 
8268
- sig { returns(T.untyped) }
8328
+ sig { void }
8269
8329
  def class_under_test; end
8270
8330
 
8271
- sig { returns(T.untyped) }
8331
+ sig { void }
8272
8332
  def respond_like_instance_of; end
8273
8333
 
8274
- sig { returns(T.untyped) }
8334
+ sig { void }
8275
8335
  def respond_like; end
8336
+
8337
+ sig { void }
8338
+ def test_raw_task_search_without_selector; end
8339
+
8340
+ # _@param_ `task_searches`
8341
+ sig { params(task_searches: Checkoff::TaskSearches).returns(T::Array[T.untyped]) }
8342
+ def mock_full_page_raw_task_search(task_searches); end
8343
+
8344
+ sig { void }
8345
+ def test_raw_task_search_paginates_when_full_page; end
8276
8346
  end
8277
8347
 
8278
8348
  # rubocop:disable Metrics/ClassLength
@@ -8322,61 +8392,61 @@ class TestTaskSelectors < ClassTest
8322
8392
  sig { void }
8323
8393
  def test_filter_via_custom_field_value_custom_fields_not_provided; end
8324
8394
 
8325
- sig { returns(T.untyped) }
8395
+ sig { void }
8326
8396
  def test_filter_via_custom_field_value_nil_none_found; end
8327
8397
 
8328
8398
  sig { void }
8329
8399
  def test_filter_via_custom_field_value_gid_nil_none_found; end
8330
8400
 
8331
- sig { returns(T.untyped) }
8401
+ sig { void }
8332
8402
  def test_filter_via_task_selector_tag; end
8333
8403
 
8334
8404
  sig { void }
8335
8405
  def test_filter_via_task_selector_not; end
8336
8406
 
8337
- sig { returns(T.untyped) }
8407
+ sig { void }
8338
8408
  def test_filter_via_task_selector_and; end
8339
8409
 
8340
- sig { returns(T.untyped) }
8410
+ sig { void }
8341
8411
  def test_filter_via_task_selector_or; end
8342
8412
 
8343
- sig { returns(T.untyped) }
8413
+ sig { void }
8344
8414
  def test_filter_via_task_selector_simple; end
8345
8415
 
8346
- sig { returns(T.untyped) }
8416
+ sig { void }
8347
8417
  def test_filter_via_task_selector_ready; end
8348
8418
 
8349
- sig { returns(T.untyped) }
8419
+ sig { void }
8350
8420
  def expect_now_jan_1_2019; end
8351
8421
 
8352
- sig { returns(T.untyped) }
8422
+ sig { void }
8353
8423
  def expect_starts_jan_1_2019_midnight; end
8354
8424
 
8355
- sig { returns(T.untyped) }
8425
+ sig { void }
8356
8426
  def expect_no_incomplete_dependencies; end
8357
8427
 
8358
8428
  sig { returns(T.untyped) }
8359
8429
  def mock_filter_via_task_selector_ready_between_relative_starts_no; end
8360
8430
 
8361
- sig { returns(T.untyped) }
8431
+ sig { void }
8362
8432
  def test_filter_via_task_selector_ready_between_relative_starts_now; end
8363
8433
 
8364
- sig { returns(T.untyped) }
8434
+ sig { void }
8365
8435
  def mock_filter_via_task_selector_ready_between_relative_starts_today; end
8366
8436
 
8367
- sig { returns(T.untyped) }
8437
+ sig { void }
8368
8438
  def test_filter_via_task_selector_ready_between_relative_starts_today; end
8369
8439
 
8370
- sig { returns(T.untyped) }
8440
+ sig { void }
8371
8441
  def mock_filter_via_task_selector_ready_between_relative_due_now; end
8372
8442
 
8373
- sig { returns(T.untyped) }
8443
+ sig { void }
8374
8444
  def test_filter_via_task_selector_ready_between_relative_due_now; end
8375
8445
 
8376
8446
  sig { returns(T.untyped) }
8377
8447
  def mock_due_on_jan_1_2019; end
8378
8448
 
8379
- sig { returns(T.untyped) }
8449
+ sig { void }
8380
8450
  def expect_no_start; end
8381
8451
 
8382
8452
  sig { returns(T.untyped) }
@@ -8412,7 +8482,7 @@ class TestTaskSelectors < ClassTest
8412
8482
  sig { void }
8413
8483
  def test_filter_via_task_selector_unassigned; end
8414
8484
 
8415
- sig { returns(T.untyped) }
8485
+ sig { void }
8416
8486
  def test_filter_via_custom_field_gid_value_contains_all_gids; end
8417
8487
 
8418
8488
  sig { void }
@@ -8472,7 +8542,7 @@ class TestTaskSelectors < ClassTest
8472
8542
  sig { void }
8473
8543
  def test_filter_via_task_selector_field_greater_than_or_equal_to_n_days_from_today_due_on; end
8474
8544
 
8475
- sig { returns(T.untyped) }
8545
+ sig { void }
8476
8546
  def mock_filter_via_task_selector_field_greater_than_or_equal_to_n_days_from_today_due_at; end
8477
8547
 
8478
8548
  sig { void }
@@ -8520,21 +8590,45 @@ class TestTaskSelectors < ClassTest
8520
8590
  sig { returns(T.untyped) }
8521
8591
  def test_in_portfolio_named_false; end
8522
8592
 
8523
- sig { returns(T.untyped) }
8593
+ sig { void }
8524
8594
  def test_custom_field_gid_value_contains_any_gid_false_multi_enum; end
8525
8595
 
8526
- sig { returns(T.untyped) }
8596
+ sig { void }
8527
8597
  def test_last_task_milestone_does_not_depend_on_this_task; end
8528
8598
 
8529
- sig { returns(T.untyped) }
8599
+ sig { void }
8530
8600
  def respond_like_instance_of; end
8531
8601
 
8532
- sig { returns(T.untyped) }
8602
+ sig { void }
8533
8603
  def respond_like; end
8534
8604
 
8535
8605
  sig { returns(T.class_of(Checkoff::TaskSelectors)) }
8536
8606
  def class_under_test; end
8537
8607
 
8608
+ sig { void }
8609
+ def test_in_a_real_project_true; end
8610
+
8611
+ sig { void }
8612
+ def test_in_a_real_project_false_only_my_tasks; end
8613
+
8614
+ sig { void }
8615
+ def test_section_name_starts_with_true; end
8616
+
8617
+ sig { void }
8618
+ def test_section_name_starts_with_false; end
8619
+
8620
+ sig { void }
8621
+ def test_in_section_named_true; end
8622
+
8623
+ sig { void }
8624
+ def test_in_section_named_false; end
8625
+
8626
+ sig { void }
8627
+ def test_in_portfolio_more_than_once_true; end
8628
+
8629
+ sig { void }
8630
+ def test_no_milestone_depends_on_this_task_true; end
8631
+
8538
8632
  sig { returns(T.untyped) }
8539
8633
  def test_filter_via_task_selector_in_section_named_false; end
8540
8634
 
@@ -8543,22 +8637,22 @@ class TestTaskSelectors < ClassTest
8543
8637
  end
8544
8638
 
8545
8639
  class TestLogging < Minitest::Test
8546
- sig { returns(T.untyped) }
8640
+ sig { void }
8547
8641
  def test_logger_defaults_without_rails; end
8548
8642
 
8549
- sig { returns(T.untyped) }
8643
+ sig { void }
8550
8644
  def test_logger_uses_rails_logger_when_available; end
8551
8645
 
8552
- sig { returns(T.untyped) }
8646
+ sig { void }
8553
8647
  def test_logger_falls_back_when_rails_has_no_logger; end
8554
8648
 
8555
- sig { returns(T.untyped) }
8649
+ sig { void }
8556
8650
  def build_logger_owner; end
8557
8651
 
8558
- sig { returns(T.untyped) }
8652
+ sig { void }
8559
8653
  def with_removed_rails; end
8560
8654
 
8561
- sig { params(rails_const: T.untyped).returns(T.untyped) }
8655
+ sig { params(rails_const: T.untyped).void }
8562
8656
  def with_temporary_rails(rails_const); end
8563
8657
  end
8564
8658
 
@@ -8598,10 +8692,10 @@ class TestProjectSelectors < ClassTest
8598
8692
  sig { returns(T.class_of(Checkoff::ProjectSelectors)) }
8599
8693
  def class_under_test; end
8600
8694
 
8601
- sig { returns(T.untyped) }
8695
+ sig { void }
8602
8696
  def respond_like_instance_of; end
8603
8697
 
8604
- sig { returns(T.untyped) }
8698
+ sig { void }
8605
8699
  def respond_like; end
8606
8700
  end
8607
8701
 
@@ -8617,10 +8711,10 @@ class TestSectionSelectors < ClassTest
8617
8711
  sig { void }
8618
8712
  def expect_client_tasks_pulled; end
8619
8713
 
8620
- sig { returns(T.untyped) }
8714
+ sig { void }
8621
8715
  def expect_section_gid_pulled; end
8622
8716
 
8623
- sig { returns(T.untyped) }
8717
+ sig { void }
8624
8718
  def mock_filter_via_ends_with_milestone_true; end
8625
8719
 
8626
8720
  sig { void }
@@ -8715,42 +8809,42 @@ class TestTaskHashes < ClassTest
8715
8809
  },
8716
8810
  }.freeze, T.untyped)
8717
8811
 
8718
- sig { returns(T.untyped) }
8812
+ sig { void }
8719
8813
  def test_task_a_to_h; end
8720
8814
 
8721
- sig { returns(T.untyped) }
8815
+ sig { void }
8722
8816
  def test_task_b_to_h; end
8723
8817
 
8724
- sig { returns(T.untyped) }
8818
+ sig { void }
8725
8819
  def class_under_test; end
8726
8820
  end
8727
8821
 
8728
8822
  class TestTaskTiming < ClassTest
8729
- sig { returns(T.untyped) }
8823
+ sig { void }
8730
8824
  def test_date_or_time_field_by_name_raises_if_unknown_field; end
8731
8825
 
8732
- sig { returns(T.untyped) }
8826
+ sig { void }
8733
8827
  def class_under_test; end
8734
8828
 
8735
- sig { returns(T.untyped) }
8829
+ sig { void }
8736
8830
  def respond_like_instance_of; end
8737
8831
 
8738
- sig { returns(T.untyped) }
8832
+ sig { void }
8739
8833
  def respond_like; end
8740
8834
  end
8741
8835
 
8742
8836
  # Test the Checkoff::Internal::ConfigLoader class
8743
8837
  class TestConfigLoader < Minitest::Test
8744
- sig { returns(T.untyped) }
8838
+ sig { void }
8745
8839
  def mock_yaml_loaded; end
8746
8840
 
8747
- sig { returns(T.untyped) }
8841
+ sig { void }
8748
8842
  def test_requests_from_env_variable_neither_populated; end
8749
8843
 
8750
- sig { returns(T.untyped) }
8844
+ sig { void }
8751
8845
  def test_requests_from_env_variable_if_yaml_not_populated; end
8752
8846
 
8753
- sig { returns(T.untyped) }
8847
+ sig { void }
8754
8848
  def test_defers_to_yaml; end
8755
8849
  end
8756
8850
 
@@ -8801,56 +8895,56 @@ class TestProjectHashes < ClassTest
8801
8895
  },
8802
8896
  }.freeze, T.untyped)
8803
8897
 
8804
- sig { returns(T.untyped) }
8898
+ sig { void }
8805
8899
  def test_project_a_to_h; end
8806
8900
 
8807
- sig { returns(T.untyped) }
8901
+ sig { void }
8808
8902
  def test_project_b_to_h; end
8809
8903
 
8810
- sig { returns(T.untyped) }
8904
+ sig { void }
8811
8905
  def test_project_b_to_h_named; end
8812
8906
 
8813
- sig { returns(T.untyped) }
8907
+ sig { void }
8814
8908
  def class_under_test; end
8815
8909
  end
8816
8910
 
8817
8911
  class TestProjectTiming < ClassTest
8818
8912
  extend Forwardable
8819
8913
 
8820
- sig { returns(T.untyped) }
8914
+ sig { void }
8821
8915
  def test_date_or_time_field_by_name_due; end
8822
8916
 
8823
- sig { returns(T.untyped) }
8917
+ sig { void }
8824
8918
  def test_date_or_time_field_by_name_due_nil; end
8825
8919
 
8826
8920
  sig { returns(T.untyped) }
8827
8921
  def test_date_or_time_field_by_name_start; end
8828
8922
 
8829
- sig { returns(T.untyped) }
8923
+ sig { void }
8830
8924
  def test_date_or_time_field_by_name_start_nil; end
8831
8925
 
8832
- sig { returns(T.untyped) }
8926
+ sig { void }
8833
8927
  def test_date_or_time_field_by_name_ready; end
8834
8928
 
8835
- sig { returns(T.untyped) }
8929
+ sig { void }
8836
8930
  def test_date_or_time_field_by_name_custom_field; end
8837
8931
 
8838
- sig { returns(T.untyped) }
8932
+ sig { void }
8839
8933
  def test_date_or_time_field_by_name_custom_field_nil; end
8840
8934
 
8841
- sig { returns(T.untyped) }
8935
+ sig { void }
8842
8936
  def test_date_or_time_field_by_name_raises_if_unknown_field; end
8843
8937
 
8844
- sig { returns(T.untyped) }
8938
+ sig { void }
8845
8939
  def test_date_or_time_field_by_name_raises_if_unknown_array_field; end
8846
8940
 
8847
- sig { returns(T.untyped) }
8941
+ sig { void }
8848
8942
  def class_under_test; end
8849
8943
 
8850
- sig { returns(T.untyped) }
8944
+ sig { void }
8851
8945
  def respond_like_instance_of; end
8852
8946
 
8853
- sig { returns(T.untyped) }
8947
+ sig { void }
8854
8948
  def respond_like; end
8855
8949
  end
8856
8950
 
@@ -9005,6 +9099,12 @@ class TestSearchUrlParser < ClassTest
9005
9099
 
9006
9100
  sig { returns(T.class_of(Checkoff::Internal::SearchUrl::Parser)) }
9007
9101
  def class_under_test; end
9102
+
9103
+ # Ruby 3.4+ Hash#inspect inserts spaces around =>; normalize for assertions.
9104
+ #
9105
+ # _@param_ `message`
9106
+ sig { params(message: String).returns(String) }
9107
+ def normalize_error_message(message); end
9008
9108
  end
9009
9109
 
9010
9110
  class TestAsanaEventFilter < ClassTest
@@ -9102,48 +9202,83 @@ class TestAsanaEventFilter < ClassTest
9102
9202
  },
9103
9203
  }.freeze, T.untyped)
9104
9204
 
9105
- sig { returns(T.untyped) }
9205
+ sig { void }
9106
9206
  def test_matches_nil_filters_true; end
9107
9207
 
9108
- sig { returns(T.untyped) }
9208
+ sig { void }
9109
9209
  def test_matches_zero_filters_false; end
9110
9210
 
9111
- sig { returns(T.untyped) }
9211
+ sig { void }
9112
9212
  def test_matches_on_resource_type_true; end
9113
9213
 
9114
- sig { returns(T.untyped) }
9214
+ sig { void }
9115
9215
  def test_matches_on_resource_subtype_true; end
9116
9216
 
9117
- sig { returns(T.untyped) }
9217
+ sig { void }
9118
9218
  def test_matches_on_action_true; end
9119
9219
 
9120
9220
  sig { returns(T.untyped) }
9121
9221
  def test_matches_on_action_false; end
9122
9222
 
9123
- sig { returns(T.untyped) }
9223
+ sig { void }
9124
9224
  def test_fetched_section_gid; end
9125
9225
 
9126
- sig { returns(T.untyped) }
9226
+ sig { void }
9127
9227
  def test_matches_on_fields_true; end
9128
9228
 
9129
- sig { params(gid: T.untyped, fields: T.untyped, task_obj: T.untyped).returns(T.untyped) }
9229
+ sig { params(gid: T.untyped, fields: T.untyped, task_obj: T.untyped).void }
9130
9230
  def expect_task_fetched(gid, fields, task_obj); end
9131
9231
 
9132
- sig { returns(T.untyped) }
9232
+ sig { void }
9133
9233
  def test_task_completed_event_true; end
9134
9234
 
9135
- sig { returns(T.untyped) }
9235
+ sig { void }
9136
9236
  def test_matches_on_parent_gid_true; end
9137
9237
 
9138
- sig { returns(T.untyped) }
9238
+ sig { void }
9139
9239
  def test_matches_on_bad_key_raises; end
9140
9240
 
9141
- sig { returns(T.untyped) }
9241
+ sig { void }
9142
9242
  def class_under_test; end
9143
9243
 
9144
- sig { returns(T.untyped) }
9244
+ sig { void }
9145
9245
  def respond_like_instance_of; end
9146
9246
 
9147
- sig { returns(T.untyped) }
9247
+ sig { void }
9248
+ def respond_like; end
9249
+ end
9250
+
9251
+ # Test the Checkoff::ViewSubcommand class used in CLI processing
9252
+ class TestViewSubcommand < ClassTest
9253
+ extend Forwardable
9254
+
9255
+ sig { returns(String) }
9256
+ def task_name; end
9257
+
9258
+ sig { returns(String) }
9259
+ def due_at_value; end
9260
+
9261
+ sig { void }
9262
+ def expect_task_lookup; end
9263
+
9264
+ sig { void }
9265
+ def stub_task_due_fields; end
9266
+
9267
+ sig { void }
9268
+ def test_run_on_task; end
9269
+
9270
+ sig { void }
9271
+ def test_run_on_task_not_found; end
9272
+
9273
+ sig { params(clazz: T.untyped).returns(Checkoff::ViewSubcommand) }
9274
+ def create_object(clazz = class_under_test); end
9275
+
9276
+ sig { returns(T.class_of(Checkoff::ViewSubcommand)) }
9277
+ def class_under_test; end
9278
+
9279
+ sig { void }
9280
+ def respond_like_instance_of; end
9281
+
9282
+ sig { void }
9148
9283
  def respond_like; end
9149
9284
  end