add lti variable expansion for usage metrics
why: * internal LTI tools can key off the Canvas feature flag refs INTEROP-7810 flag=none test plan: * with the flag off * update an existing ContextExternalTool in a rails console, or install a new tool with this variable expansion: `metrics=$com.instructure.Account.usage_metrics_enabled` * launch the tool * that custom variable should have expanded to `false` * enable the flag with `Account.site_admin.enable_feature! :send_usage_metrics` * launch the tool again (may require a rails cache clear) * that custom variable should have expanded to `true` Change-Id: I80b62acec34eeefc0be3bde30bee8e1f341b5e26 Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/305701 QA-Review: Evan Battaglia <ebattaglia@instructure.com> Reviewed-by: Jacob Burroughs <jburroughs@instructure.com> Product-Review: Evan Battaglia <ebattaglia@instructure.com> Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
This commit is contained in:
parent
9d3f968718
commit
eb8952e49b
|
@ -1501,3 +1501,10 @@ in Canvas-side GET request that triggers the LTI launch.
|
||||||
```
|
```
|
||||||
[{"id":"3","name":"First Module"},{"id":"5","name":"Second Module"}]
|
[{"id":"3","name":"First Module"},{"id":"5","name":"Second Module"}]
|
||||||
```
|
```
|
||||||
|
## com.instructure.Account.usage_metrics_enabled
|
||||||
|
|
||||||
|
|
||||||
|
**Availability**: *always*
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1691,6 +1691,11 @@ module Lti
|
||||||
val&.to_json
|
val&.to_json
|
||||||
}
|
}
|
||||||
|
|
||||||
|
register_expansion "com.instructure.Account.usage_metrics_enabled", [],
|
||||||
|
lambda {
|
||||||
|
@root_account.feature_enabled?(:send_usage_metrics)
|
||||||
|
}
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def unique_submission_dates
|
def unique_submission_dates
|
||||||
|
|
|
@ -464,6 +464,33 @@ module Lti
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context "com.instructure.Account.usage_metrics_enabled" do
|
||||||
|
subject { variable_expander.expand_variables!(exp_hash) }
|
||||||
|
|
||||||
|
let(:exp_hash) { { test: "$com.instructure.Account.usage_metrics_enabled" } }
|
||||||
|
|
||||||
|
context "when flag is disabled" do
|
||||||
|
before do
|
||||||
|
root_account.disable_feature! :send_usage_metrics
|
||||||
|
end
|
||||||
|
|
||||||
|
it "expands to false" do
|
||||||
|
expect(subject[:test]).to eq false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context "when flag is enabled and account allows it" do
|
||||||
|
before do
|
||||||
|
root_account.settings[:enable_usage_metrics] = true
|
||||||
|
root_account.enable_feature! :send_usage_metrics
|
||||||
|
end
|
||||||
|
|
||||||
|
it "expands to true" do
|
||||||
|
expect(subject[:test]).to eq true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
it "has a substitution for com.instructure.Assignment.lti.id" do
|
it "has a substitution for com.instructure.Assignment.lti.id" do
|
||||||
exp_hash = { test: "$com.instructure.Assignment.lti.id" }
|
exp_hash = { test: "$com.instructure.Assignment.lti.id" }
|
||||||
variable_expander.expand_variables!(exp_hash)
|
variable_expander.expand_variables!(exp_hash)
|
||||||
|
|
Loading…
Reference in New Issue