discourse-subscriptions/test/javascripts/acceptance/subscribe-test.js

53 lines
1.5 KiB
JavaScript
Raw Normal View History

2022-03-06 18:30:01 -05:00
import { acceptance, count } from "discourse/tests/helpers/qunit-helpers";
2020-01-09 22:41:32 -05:00
import { stubStripe } from "discourse/plugins/discourse-subscriptions/helpers/stripe";
2022-03-06 18:30:01 -05:00
import { click, visit } from "@ember/test-helpers";
2022-03-07 08:34:05 -05:00
import { test } from "qunit";
import pretender, { response } from "discourse/tests/helpers/create-pretender";
function singleProductPretender() {
pretender.get("/s", () => {
const products = [
{
id: "prod_23o8I7tU4g56",
name: "Awesome Product",
description:
"Subscribe to our awesome product. For only $230.10 per month, you can get access. This is a test site. No real credit card transactions.",
},
];
return response(products);
});
}
2019-10-09 22:52:55 -04:00
acceptance("Discourse Subscriptions", function (needs) {
needs.user();
2022-03-06 18:30:01 -05:00
needs.hooks.beforeEach(function () {
2020-01-09 22:41:32 -05:00
stubStripe();
});
2020-01-09 22:41:32 -05:00
2022-03-06 18:30:01 -05:00
test("subscribing", async function (assert) {
await visit("/s");
await click(".product:first-child a");
2020-01-10 00:47:28 -05:00
assert.ok(
2022-03-06 18:30:01 -05:00
count(".discourse-subscriptions-section-columns") > 0,
"has the sections for billing"
);
2020-01-11 17:08:00 -05:00
assert.ok(
2022-03-06 18:30:01 -05:00
count(".subscribe-buttons button") > 0,
"has buttons for subscribe"
);
});
test("skips products list on sites with one product", async function (assert) {
singleProductPretender();
await visit("/s");
assert.dom(".subscribe-buttons button").exists({ count: 1 });
assert.dom("input.subscribe-promo-code").exists();
assert.dom("button.btn-payment").exists();
});
2019-10-09 22:52:55 -04:00
});