checkoff 0.246.0 → 0.248.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.
- checksums.yaml +4 -4
- data/lib/checkoff/internal/selector_classes/task.rb +6 -2
- data/lib/checkoff/tasks.rb +3 -4
- data/lib/checkoff/version.rb +1 -1
- data/rbi/checkoff.rbi +48 -350
- data/sig/checkoff.rbs +27 -0
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: cf2ef1bb397eb6f71c13c2b0b80a07bcce2768bf949f7306552f42196ff2ee2f
|
|
4
|
+
data.tar.gz: e13e1ddd086c25666513f065d6d1d0efcb3498117207bd2db2be0832a3369a97
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 5b1e83d10cc864255f05003342919ff7c1c4171821232a6d702672c395bda000ef923e4da9084a5d86398e0107bdffa813e40bb6a78fd7a656f65f342c32bc09
|
|
7
|
+
data.tar.gz: f79ec8061cd3b0a3180f4f94370c468e57c8731e873486a912f280ed2a860751047433a7660068ac57283f7f8e608925b8e615a7224c3f8b41cea0bb58e0702c
|
|
@@ -190,9 +190,12 @@ module Checkoff
|
|
|
190
190
|
|
|
191
191
|
# @param task [Asana::Resources::Task]
|
|
192
192
|
# @return [Boolean]
|
|
193
|
+
# CI quality (pipeline 1902): "return type could not be inferred" on modified lines
|
|
194
|
+
# after 7eeb5b1 removed @sg-ignore. Local overcommit may report "Unneeded @sg-ignore";
|
|
195
|
+
# `== true` alone did not satisfy the CI overcommit Solargraph hook.
|
|
193
196
|
# @sg-ignore
|
|
194
197
|
def evaluate(task)
|
|
195
|
-
task.assignee.nil?
|
|
198
|
+
task.assignee.nil? == true
|
|
196
199
|
end
|
|
197
200
|
end
|
|
198
201
|
|
|
@@ -206,9 +209,10 @@ module Checkoff
|
|
|
206
209
|
|
|
207
210
|
# @param task [Asana::Resources::Task]
|
|
208
211
|
# @return [Boolean]
|
|
212
|
+
# Same CI/local Solargraph drift as UnassignedPFunctionEvaluator#evaluate (pipeline 1902).
|
|
209
213
|
# @sg-ignore
|
|
210
214
|
def evaluate(task)
|
|
211
|
-
!task.due_at.nil?
|
|
215
|
+
!(task.due_at.nil? && task.due_on.nil?)
|
|
212
216
|
end
|
|
213
217
|
end
|
|
214
218
|
|
data/lib/checkoff/tasks.rb
CHANGED
|
@@ -292,6 +292,7 @@ module Checkoff
|
|
|
292
292
|
# @param portfolio_name [String]
|
|
293
293
|
# @param workspace_name [String]
|
|
294
294
|
# @return [Boolean]
|
|
295
|
+
# CI quality (pipeline 1902): "in_portfolio_named? return type could not be inferred".
|
|
295
296
|
# @sg-ignore
|
|
296
297
|
def in_portfolio_named?(task,
|
|
297
298
|
portfolio_name,
|
|
@@ -300,10 +301,8 @@ module Checkoff
|
|
|
300
301
|
task.memberships.any? do |membership|
|
|
301
302
|
m = T.cast(membership, T::Hash[String, T.untyped])
|
|
302
303
|
project_gid = T.cast(m.fetch('project'), T::Hash[String, T.untyped]).fetch('gid')
|
|
303
|
-
portfolio_projects.any?
|
|
304
|
-
|
|
305
|
-
end
|
|
306
|
-
end
|
|
304
|
+
portfolio_projects.any? { |portfolio_project| portfolio_project.gid == project_gid }
|
|
305
|
+
end == true
|
|
307
306
|
end
|
|
308
307
|
|
|
309
308
|
# True if the task is in a project which is in the given portfolio
|
data/lib/checkoff/version.rb
CHANGED
data/rbi/checkoff.rbi
CHANGED
|
@@ -75,7 +75,7 @@ module Overcommit
|
|
|
75
75
|
end
|
|
76
76
|
|
|
77
77
|
module Checkoff
|
|
78
|
-
VERSION = '0.
|
|
78
|
+
VERSION = '0.248.0'
|
|
79
79
|
|
|
80
80
|
class Attachments
|
|
81
81
|
include Logging
|
|
@@ -2442,7 +2442,7 @@ end
|
|
|
2442
2442
|
# typed: ignore
|
|
2443
2443
|
# Command-line and gem client for Asana (unofficial)
|
|
2444
2444
|
module Checkoff
|
|
2445
|
-
VERSION = T.let('0.
|
|
2445
|
+
VERSION = T.let('0.248.0', T.untyped)
|
|
2446
2446
|
|
|
2447
2447
|
# Move tasks from one place to another
|
|
2448
2448
|
class MvSubcommand
|
|
@@ -3027,6 +3027,7 @@ 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
|
+
# CI quality (pipeline 1902): "in_portfolio_named? return type could not be inferred".
|
|
3030
3031
|
# @sg-ignore
|
|
3031
3032
|
#
|
|
3032
3033
|
# _@param_ `task`
|
|
@@ -5961,6 +5962,9 @@ module Checkoff
|
|
|
5961
5962
|
def matches?; end
|
|
5962
5963
|
|
|
5963
5964
|
# sord warn - Asana::Resources::Task wasn't able to be resolved to a constant in this project
|
|
5965
|
+
# CI quality (pipeline 1902): "return type could not be inferred" on modified lines
|
|
5966
|
+
# after 7eeb5b1 removed @sg-ignore. Local overcommit may report "Unneeded @sg-ignore";
|
|
5967
|
+
# `== true` alone did not satisfy the CI overcommit Solargraph hook.
|
|
5964
5968
|
# @sg-ignore
|
|
5965
5969
|
#
|
|
5966
5970
|
# _@param_ `task`
|
|
@@ -5976,6 +5980,7 @@ module Checkoff
|
|
|
5976
5980
|
def matches?; end
|
|
5977
5981
|
|
|
5978
5982
|
# sord warn - Asana::Resources::Task wasn't able to be resolved to a constant in this project
|
|
5983
|
+
# Same CI/local Solargraph drift as UnassignedPFunctionEvaluator#evaluate (pipeline 1902).
|
|
5979
5984
|
# @sg-ignore
|
|
5980
5985
|
#
|
|
5981
5986
|
# _@param_ `task`
|
|
@@ -6755,6 +6760,23 @@ end - [Checkoff::SelectorClasses::Section::FunctionEvaluator]).freeze, T.untyped
|
|
|
6755
6760
|
sig { returns(Asana::Client) }
|
|
6756
6761
|
attr_reader :client
|
|
6757
6762
|
end
|
|
6763
|
+
|
|
6764
|
+
# Remove TIME_BY_PERIOD redeclarations Sord emits on BaseAsana test subclasses.
|
|
6765
|
+
module PruneRbiTestConstants
|
|
6766
|
+
SUBCLASSES = T.let(%w[TestTasks TestProjects TestSections TestWorkspaces].freeze, T.untyped)
|
|
6767
|
+
|
|
6768
|
+
# _@param_ `klass`
|
|
6769
|
+
sig { params(klass: String).returns(Regexp) }
|
|
6770
|
+
def self.pattern_for(klass); end
|
|
6771
|
+
|
|
6772
|
+
# _@param_ `path`
|
|
6773
|
+
sig { params(path: String).void }
|
|
6774
|
+
def self.call(path); end
|
|
6775
|
+
|
|
6776
|
+
# _@param_ `content`
|
|
6777
|
+
sig { params(content: String).returns(String) }
|
|
6778
|
+
def self.prune_subclasses(content); end
|
|
6779
|
+
end
|
|
6758
6780
|
end
|
|
6759
6781
|
|
|
6760
6782
|
# include this to add ability to log at different levels
|
|
@@ -6971,214 +6993,6 @@ end
|
|
|
6971
6993
|
# Test the Checkoff::Tasks class
|
|
6972
6994
|
class TestTasks < BaseAsana
|
|
6973
6995
|
extend Forwardable
|
|
6974
|
-
TIME_BY_PERIOD = T.let({
|
|
6975
|
-
two_am: '02:00:20',
|
|
6976
|
-
morning_during_breakfast: '07:30:20',
|
|
6977
|
-
morning: '07:33:20',
|
|
6978
|
-
eight_thirty_am: '8:30:00',
|
|
6979
|
-
ten_am: '10:00:20',
|
|
6980
|
-
mid_morning: '10:33:20',
|
|
6981
|
-
eleven_thirty_am: '11:30:00',
|
|
6982
|
-
afternoon: '14:33:20',
|
|
6983
|
-
three_forty_five_pm: '15:45:20',
|
|
6984
|
-
four_fifteen_pm: '16:15:20',
|
|
6985
|
-
four_forty_five_pm: '16:45:20',
|
|
6986
|
-
five_forty_five_pm: '17:45:20',
|
|
6987
|
-
six_fifteen_pm: '18:15:00',
|
|
6988
|
-
six_forty_five_pm: '18:45:00',
|
|
6989
|
-
night: '19:00:20',
|
|
6990
|
-
evening: '19:01:20',
|
|
6991
|
-
late_evening: '21:33:20',
|
|
6992
|
-
late_late_evening: '22:33:20',
|
|
6993
|
-
}.freeze, T.untyped)
|
|
6994
|
-
|
|
6995
|
-
sig { void }
|
|
6996
|
-
def expect_now_pulled; end
|
|
6997
|
-
|
|
6998
|
-
sig { params(less_than_now: T.untyped).void }
|
|
6999
|
-
def expect_due_on_parsed(less_than_now:); end
|
|
7000
|
-
|
|
7001
|
-
sig { params(less_than_now: T.untyped).void }
|
|
7002
|
-
def expect_start_on_parsed(less_than_now:); end
|
|
7003
|
-
|
|
7004
|
-
sig { params(less_than_now: T.untyped).void }
|
|
7005
|
-
def expect_start_at_parsed(less_than_now:); end
|
|
7006
|
-
|
|
7007
|
-
sig { void }
|
|
7008
|
-
def mock_task_ready_false_due_in_future_on_date; end
|
|
7009
|
-
|
|
7010
|
-
sig { void }
|
|
7011
|
-
def test_task_ready_false_due_in_future_on_date; end
|
|
7012
|
-
|
|
7013
|
-
sig { returns(T.untyped) }
|
|
7014
|
-
def mock_task_ready_true_start_in_past; end
|
|
7015
|
-
|
|
7016
|
-
sig { void }
|
|
7017
|
-
def test_task_ready_true_start_in_past; end
|
|
7018
|
-
|
|
7019
|
-
sig { void }
|
|
7020
|
-
def mock_task_ready_true_start_in_past_time; end
|
|
7021
|
-
|
|
7022
|
-
sig { void }
|
|
7023
|
-
def test_task_ready_true_start_in_past_time; end
|
|
7024
|
-
|
|
7025
|
-
sig { params(less_than_now: T.untyped).void }
|
|
7026
|
-
def expect_due_at_parsed(less_than_now:); end
|
|
7027
|
-
|
|
7028
|
-
sig { void }
|
|
7029
|
-
def mock_task_ready_false_due_in_future_at_time; end
|
|
7030
|
-
|
|
7031
|
-
sig { void }
|
|
7032
|
-
def test_task_ready_false_due_in_future_at_time; end
|
|
7033
|
-
|
|
7034
|
-
sig { params(task: T.untyped, dependency_gids: T.untyped).void }
|
|
7035
|
-
def expect_dependency_gids_pulled(task, dependency_gids); end
|
|
7036
|
-
|
|
7037
|
-
sig { void }
|
|
7038
|
-
def test_task_ready_true_no_due_anything; end
|
|
7039
|
-
|
|
7040
|
-
sig { void }
|
|
7041
|
-
def expect_asana_tasks_client_pulled; end
|
|
7042
|
-
|
|
7043
|
-
sig { void }
|
|
7044
|
-
def default_fields; end
|
|
7045
|
-
|
|
7046
|
-
sig { params(extra_fields: T.untyped).void }
|
|
7047
|
-
def fields_including(extra_fields); end
|
|
7048
|
-
|
|
7049
|
-
sig { params(dependency_gid: T.untyped, dependency_full_task: T.untyped, completed: T.untyped).void }
|
|
7050
|
-
def expect_dependency_completion_pulled(dependency_gid, dependency_full_task, completed); end
|
|
7051
|
-
|
|
7052
|
-
sig { void }
|
|
7053
|
-
def mock_task_ready_false_dependency; end
|
|
7054
|
-
|
|
7055
|
-
sig { returns(T.untyped) }
|
|
7056
|
-
def test_task_ready_false_dependency; end
|
|
7057
|
-
|
|
7058
|
-
sig { void }
|
|
7059
|
-
def test_task_ready_false_dependency_cached; end
|
|
7060
|
-
|
|
7061
|
-
sig do
|
|
7062
|
-
params(
|
|
7063
|
-
start_on: T.untyped,
|
|
7064
|
-
start_at: T.untyped,
|
|
7065
|
-
due_on: T.untyped,
|
|
7066
|
-
due_at: T.untyped
|
|
7067
|
-
).void
|
|
7068
|
-
end
|
|
7069
|
-
def allow_task_due(start_on: nil, start_at: nil, due_on: nil, due_at: nil); end
|
|
7070
|
-
|
|
7071
|
-
sig { params(task: T.untyped, start_at: T.untyped).void }
|
|
7072
|
-
def allow_start_at_pulled(task, start_at); end
|
|
7073
|
-
|
|
7074
|
-
sig { params(task: T.untyped, start_on: T.untyped).returns(T.untyped) }
|
|
7075
|
-
def allow_start_on_pulled(task, start_on); end
|
|
7076
|
-
|
|
7077
|
-
sig { params(task: T.untyped, due_at: T.untyped).void }
|
|
7078
|
-
def allow_due_at_pulled(task, due_at); end
|
|
7079
|
-
|
|
7080
|
-
sig { params(task: T.untyped, due_on: T.untyped).returns(T.untyped) }
|
|
7081
|
-
def allow_due_on_pulled(task, due_on); end
|
|
7082
|
-
|
|
7083
|
-
sig { returns(T.untyped) }
|
|
7084
|
-
def test_url_of_task; end
|
|
7085
|
-
|
|
7086
|
-
sig { returns(T.untyped) }
|
|
7087
|
-
def expect_task_created; end
|
|
7088
|
-
|
|
7089
|
-
sig { void }
|
|
7090
|
-
def mock_add_task; end
|
|
7091
|
-
|
|
7092
|
-
sig { void }
|
|
7093
|
-
def test_add_task; end
|
|
7094
|
-
|
|
7095
|
-
sig { returns(T.untyped) }
|
|
7096
|
-
def expect_tasks_from_project_pulled; end
|
|
7097
|
-
|
|
7098
|
-
sig { void }
|
|
7099
|
-
def expect_project_pulled; end
|
|
7100
|
-
|
|
7101
|
-
sig { params(extra_fields: T.untyped).returns(T.untyped) }
|
|
7102
|
-
def expect_task_by_gid_pulled(extra_fields: []); end
|
|
7103
|
-
|
|
7104
|
-
sig { returns(T.untyped) }
|
|
7105
|
-
def expect_tasks_from_section_pulled; end
|
|
7106
|
-
|
|
7107
|
-
sig { returns(T.untyped) }
|
|
7108
|
-
def projects; end
|
|
7109
|
-
|
|
7110
|
-
sig { returns(T.untyped) }
|
|
7111
|
-
def expect_task_options_pulled; end
|
|
7112
|
-
|
|
7113
|
-
sig { returns(T.untyped) }
|
|
7114
|
-
def mock_task_with_section; end
|
|
7115
|
-
|
|
7116
|
-
sig { void }
|
|
7117
|
-
def test_task_with_section; end
|
|
7118
|
-
|
|
7119
|
-
sig { returns(T.untyped) }
|
|
7120
|
-
def mock_task; end
|
|
7121
|
-
|
|
7122
|
-
sig { void }
|
|
7123
|
-
def test_task; end
|
|
7124
|
-
|
|
7125
|
-
sig { void }
|
|
7126
|
-
def test_in_portfolio_more_than_once; end
|
|
7127
|
-
|
|
7128
|
-
sig { void }
|
|
7129
|
-
def test_in_portfolio_more_than_once_true; end
|
|
7130
|
-
|
|
7131
|
-
sig { void }
|
|
7132
|
-
def test_gid_for_task; end
|
|
7133
|
-
|
|
7134
|
-
sig { void }
|
|
7135
|
-
def test_gid_for_task_not_found; end
|
|
7136
|
-
|
|
7137
|
-
sig { returns(T.untyped) }
|
|
7138
|
-
def test_task_to_h_delegates; end
|
|
7139
|
-
|
|
7140
|
-
sig { void }
|
|
7141
|
-
def expect_default_workspace_name_pulled; end
|
|
7142
|
-
|
|
7143
|
-
sig { void }
|
|
7144
|
-
def mock_in_portfolio_named_false_no_projects_no_memberships; end
|
|
7145
|
-
|
|
7146
|
-
sig { void }
|
|
7147
|
-
def test_in_portfolio_named_false_no_projects_no_memberships; end
|
|
7148
|
-
|
|
7149
|
-
sig { void }
|
|
7150
|
-
def mock_in_portfolio_named_false_no_projects_but_memberships; end
|
|
7151
|
-
|
|
7152
|
-
sig { void }
|
|
7153
|
-
def test_in_portfolio_named_false_no_projects_but_memberships; end
|
|
7154
|
-
|
|
7155
|
-
sig { void }
|
|
7156
|
-
def mock_in_portfolio_named_false_projects_wrong_memberships; end
|
|
7157
|
-
|
|
7158
|
-
sig { void }
|
|
7159
|
-
def test_in_portfolio_named_false_projects_wrong_memberships; end
|
|
7160
|
-
|
|
7161
|
-
sig { void }
|
|
7162
|
-
def test_date_or_time_field_by_name; end
|
|
7163
|
-
|
|
7164
|
-
sig { void }
|
|
7165
|
-
def test_h_to_task; end
|
|
7166
|
-
|
|
7167
|
-
sig { void }
|
|
7168
|
-
def test_all_dependent_tasks_empty; end
|
|
7169
|
-
|
|
7170
|
-
sig { void }
|
|
7171
|
-
def test_all_dependent_tasks_one; end
|
|
7172
|
-
|
|
7173
|
-
sig { void }
|
|
7174
|
-
def test_as_cache_key; end
|
|
7175
|
-
|
|
7176
|
-
sig { void }
|
|
7177
|
-
def class_under_test; end
|
|
7178
|
-
end
|
|
7179
|
-
|
|
7180
|
-
# Test the Checkoff::CLI class with mv subcommand
|
|
7181
|
-
class TestCLIMv < Minitest::Test
|
|
7182
6996
|
sig { void }
|
|
7183
6997
|
def expect_workspaces_created; end
|
|
7184
6998
|
|
|
@@ -7466,99 +7280,6 @@ end
|
|
|
7466
7280
|
# Test the Checkoff::Projects class
|
|
7467
7281
|
class TestProjects < BaseAsana
|
|
7468
7282
|
extend Forwardable
|
|
7469
|
-
TIME_BY_PERIOD = T.let({
|
|
7470
|
-
two_am: '02:00:20',
|
|
7471
|
-
morning_during_breakfast: '07:30:20',
|
|
7472
|
-
morning: '07:33:20',
|
|
7473
|
-
eight_thirty_am: '8:30:00',
|
|
7474
|
-
ten_am: '10:00:20',
|
|
7475
|
-
mid_morning: '10:33:20',
|
|
7476
|
-
eleven_thirty_am: '11:30:00',
|
|
7477
|
-
afternoon: '14:33:20',
|
|
7478
|
-
three_forty_five_pm: '15:45:20',
|
|
7479
|
-
four_fifteen_pm: '16:15:20',
|
|
7480
|
-
four_forty_five_pm: '16:45:20',
|
|
7481
|
-
five_forty_five_pm: '17:45:20',
|
|
7482
|
-
six_fifteen_pm: '18:15:00',
|
|
7483
|
-
six_forty_five_pm: '18:45:00',
|
|
7484
|
-
night: '19:00:20',
|
|
7485
|
-
evening: '19:01:20',
|
|
7486
|
-
late_evening: '21:33:20',
|
|
7487
|
-
late_late_evening: '22:33:20',
|
|
7488
|
-
}.freeze, T.untyped)
|
|
7489
|
-
|
|
7490
|
-
sig { void }
|
|
7491
|
-
def setup_config; end
|
|
7492
|
-
|
|
7493
|
-
sig { void }
|
|
7494
|
-
def setup_projects_pulled; end
|
|
7495
|
-
|
|
7496
|
-
sig { void }
|
|
7497
|
-
def sample_projects; end
|
|
7498
|
-
|
|
7499
|
-
sig { params(workspace_gid: T.untyped).returns(T.untyped) }
|
|
7500
|
-
def setup_projects_queried(workspace_gid: my_workspace_gid); end
|
|
7501
|
-
|
|
7502
|
-
sig { params(options: T.untyped).void }
|
|
7503
|
-
def expect_tasks_found(options:); end
|
|
7504
|
-
|
|
7505
|
-
sig { params(options: T.untyped).void }
|
|
7506
|
-
def mock_tasks_from_project(options:); end
|
|
7507
|
-
|
|
7508
|
-
sig { void }
|
|
7509
|
-
def test_tasks_from_project_not_only_uncompleted; end
|
|
7510
|
-
|
|
7511
|
-
sig { void }
|
|
7512
|
-
def test_tasks_from_project; end
|
|
7513
|
-
|
|
7514
|
-
sig { void }
|
|
7515
|
-
def test_active_tasks; end
|
|
7516
|
-
|
|
7517
|
-
sig { void }
|
|
7518
|
-
def setup_workspace_pulled; end
|
|
7519
|
-
|
|
7520
|
-
sig { void }
|
|
7521
|
-
def setup_user_task_list_pulled; end
|
|
7522
|
-
|
|
7523
|
-
sig { void }
|
|
7524
|
-
def mock_project_or_raise_unknown; end
|
|
7525
|
-
|
|
7526
|
-
sig { void }
|
|
7527
|
-
def test_project_or_raise_unknown; end
|
|
7528
|
-
|
|
7529
|
-
sig { returns(T.untyped) }
|
|
7530
|
-
def test_project_by_gid; end
|
|
7531
|
-
|
|
7532
|
-
sig { void }
|
|
7533
|
-
def test_project_or_raise_my_tasks; end
|
|
7534
|
-
|
|
7535
|
-
sig { returns(T.untyped) }
|
|
7536
|
-
def mock_project_my_tasks; end
|
|
7537
|
-
|
|
7538
|
-
sig { void }
|
|
7539
|
-
def test_project_my_tasks; end
|
|
7540
|
-
|
|
7541
|
-
sig { returns(T.untyped) }
|
|
7542
|
-
def test_project_to_h; end
|
|
7543
|
-
|
|
7544
|
-
sig { returns(T.untyped) }
|
|
7545
|
-
def mock_test_in_period; end
|
|
7546
|
-
|
|
7547
|
-
sig { void }
|
|
7548
|
-
def test_in_period; end
|
|
7549
|
-
|
|
7550
|
-
sig { void }
|
|
7551
|
-
def mock_project_ready; end
|
|
7552
|
-
|
|
7553
|
-
sig { void }
|
|
7554
|
-
def test_project_ready; end
|
|
7555
|
-
|
|
7556
|
-
sig { void }
|
|
7557
|
-
def class_under_test; end
|
|
7558
|
-
end
|
|
7559
|
-
|
|
7560
|
-
# Test the Checkoff::Sections class
|
|
7561
|
-
class TestSections < BaseAsana
|
|
7562
7283
|
extend Forwardable
|
|
7563
7284
|
TIME_BY_PERIOD = T.let({
|
|
7564
7285
|
two_am: '02:00:20',
|
|
@@ -7963,53 +7684,6 @@ end
|
|
|
7963
7684
|
# Test the Checkoff::Workspaces class
|
|
7964
7685
|
class TestWorkspaces < BaseAsana
|
|
7965
7686
|
extend Forwardable
|
|
7966
|
-
TIME_BY_PERIOD = T.let({
|
|
7967
|
-
two_am: '02:00:20',
|
|
7968
|
-
morning_during_breakfast: '07:30:20',
|
|
7969
|
-
morning: '07:33:20',
|
|
7970
|
-
eight_thirty_am: '8:30:00',
|
|
7971
|
-
ten_am: '10:00:20',
|
|
7972
|
-
mid_morning: '10:33:20',
|
|
7973
|
-
eleven_thirty_am: '11:30:00',
|
|
7974
|
-
afternoon: '14:33:20',
|
|
7975
|
-
three_forty_five_pm: '15:45:20',
|
|
7976
|
-
four_fifteen_pm: '16:15:20',
|
|
7977
|
-
four_forty_five_pm: '16:45:20',
|
|
7978
|
-
five_forty_five_pm: '17:45:20',
|
|
7979
|
-
six_fifteen_pm: '18:15:00',
|
|
7980
|
-
six_forty_five_pm: '18:45:00',
|
|
7981
|
-
night: '19:00:20',
|
|
7982
|
-
evening: '19:01:20',
|
|
7983
|
-
late_evening: '21:33:20',
|
|
7984
|
-
late_late_evening: '22:33:20',
|
|
7985
|
-
}.freeze, T.untyped)
|
|
7986
|
-
|
|
7987
|
-
sig { void }
|
|
7988
|
-
def mock_workspace_or_raise_nil; end
|
|
7989
|
-
|
|
7990
|
-
sig { void }
|
|
7991
|
-
def test_workspace_or_raise_nil; end
|
|
7992
|
-
|
|
7993
|
-
sig { void }
|
|
7994
|
-
def mock_workspace_or_raise; end
|
|
7995
|
-
|
|
7996
|
-
sig { void }
|
|
7997
|
-
def test_workspace_or_raise; end
|
|
7998
|
-
|
|
7999
|
-
sig { void }
|
|
8000
|
-
def expect_default_workspace_gid_config_fetched; end
|
|
8001
|
-
|
|
8002
|
-
sig { void }
|
|
8003
|
-
def test_default_workspace_gid; end
|
|
8004
|
-
|
|
8005
|
-
sig { void }
|
|
8006
|
-
def test_default_workspace; end
|
|
8007
|
-
|
|
8008
|
-
sig { void }
|
|
8009
|
-
def class_under_test; end
|
|
8010
|
-
end
|
|
8011
|
-
|
|
8012
|
-
class TestAttachments < ClassTest
|
|
8013
7687
|
extend Forwardable
|
|
8014
7688
|
|
|
8015
7689
|
sig { params(url: T.untyped).void }
|
|
@@ -9278,3 +8952,27 @@ class TestAsanaEventFilter < ClassTest
|
|
|
9278
8952
|
sig { void }
|
|
9279
8953
|
def respond_like; end
|
|
9280
8954
|
end
|
|
8955
|
+
|
|
8956
|
+
class TestPruneCheckoffRbiTestConstants < Minitest::Test
|
|
8957
|
+
SAMPLE = T.let(<<~RBI, T.untyped)
|
|
8958
|
+
module TestDate
|
|
8959
|
+
TIME_BY_PERIOD = T.let({ a: '1' }.freeze, T.untyped)
|
|
8960
|
+
end
|
|
8961
|
+
|
|
8962
|
+
class TestTasks < BaseAsana
|
|
8963
|
+
extend Forwardable
|
|
8964
|
+
TIME_BY_PERIOD = T.let({
|
|
8965
|
+
two_am: '02:00:20',
|
|
8966
|
+
}.freeze, T.untyped)
|
|
8967
|
+
|
|
8968
|
+
sig { void }
|
|
8969
|
+
def foo; end
|
|
8970
|
+
end
|
|
8971
|
+
RBI
|
|
8972
|
+
|
|
8973
|
+
sig { returns(T.untyped) }
|
|
8974
|
+
def test_prunes_subclass_constant; end
|
|
8975
|
+
|
|
8976
|
+
sig { returns(T.untyped) }
|
|
8977
|
+
def test_noop_when_nothing_to_prune; end
|
|
8978
|
+
end
|
data/sig/checkoff.rbs
CHANGED
|
@@ -499,6 +499,7 @@ module Checkoff
|
|
|
499
499
|
# sord warn - Asana::Resources::Task wasn't able to be resolved to a constant in this project
|
|
500
500
|
# True if the task is in a project which is in the given portfolio
|
|
501
501
|
#
|
|
502
|
+
# CI quality (pipeline 1902): "in_portfolio_named? return type could not be inferred".
|
|
502
503
|
# @sg-ignore
|
|
503
504
|
#
|
|
504
505
|
# _@param_ `task`
|
|
@@ -2933,6 +2934,9 @@ module Checkoff
|
|
|
2933
2934
|
def matches?: () -> bool
|
|
2934
2935
|
|
|
2935
2936
|
# sord warn - Asana::Resources::Task wasn't able to be resolved to a constant in this project
|
|
2937
|
+
# CI quality (pipeline 1902): "return type could not be inferred" on modified lines
|
|
2938
|
+
# after 7eeb5b1 removed @sg-ignore. Local overcommit may report "Unneeded @sg-ignore";
|
|
2939
|
+
# `== true` alone did not satisfy the CI overcommit Solargraph hook.
|
|
2936
2940
|
# @sg-ignore
|
|
2937
2941
|
#
|
|
2938
2942
|
# _@param_ `task`
|
|
@@ -2946,6 +2950,7 @@ module Checkoff
|
|
|
2946
2950
|
def matches?: () -> bool
|
|
2947
2951
|
|
|
2948
2952
|
# sord warn - Asana::Resources::Task wasn't able to be resolved to a constant in this project
|
|
2953
|
+
# Same CI/local Solargraph drift as UnassignedPFunctionEvaluator#evaluate (pipeline 1902).
|
|
2949
2954
|
# @sg-ignore
|
|
2950
2955
|
#
|
|
2951
2956
|
# _@param_ `task`
|
|
@@ -3593,6 +3598,20 @@ module Checkoff
|
|
|
3593
3598
|
# sord warn - Asana::Client wasn't able to be resolved to a constant in this project
|
|
3594
3599
|
attr_reader client: Asana::Client
|
|
3595
3600
|
end
|
|
3601
|
+
|
|
3602
|
+
# Remove TIME_BY_PERIOD redeclarations Sord emits on BaseAsana test subclasses.
|
|
3603
|
+
module PruneRbiTestConstants
|
|
3604
|
+
SUBCLASSES: untyped
|
|
3605
|
+
|
|
3606
|
+
# _@param_ `klass`
|
|
3607
|
+
def self.pattern_for: (String klass) -> Regexp
|
|
3608
|
+
|
|
3609
|
+
# _@param_ `path`
|
|
3610
|
+
def self.call: (String path) -> void
|
|
3611
|
+
|
|
3612
|
+
# _@param_ `content`
|
|
3613
|
+
def self.prune_subclasses: (String content) -> String
|
|
3614
|
+
end
|
|
3596
3615
|
end
|
|
3597
3616
|
|
|
3598
3617
|
# include this to add ability to log at different levels
|
|
@@ -5156,4 +5175,12 @@ class TestAsanaEventFilter < ClassTest
|
|
|
5156
5175
|
def respond_like_instance_of: () -> void
|
|
5157
5176
|
|
|
5158
5177
|
def respond_like: () -> void
|
|
5178
|
+
end
|
|
5179
|
+
|
|
5180
|
+
class TestPruneCheckoffRbiTestConstants < Minitest::Test
|
|
5181
|
+
SAMPLE: untyped
|
|
5182
|
+
|
|
5183
|
+
def test_prunes_subclass_constant: () -> untyped
|
|
5184
|
+
|
|
5185
|
+
def test_noop_when_nothing_to_prune: () -> untyped
|
|
5159
5186
|
end
|