This repository has been archived on 2023-03-18. You can view files and clone it, but cannot push or open issues or pull requests.
osr-discourse-src/app/assets/javascripts/discourse/tests/integration/widgets/header-test.js
Robin Ward f113648107
DEV: Migrate more tests to our Ember CLI format. (#11899)
This should be fully backwards compatible.

Co-authored-by: Jarek Radosz <jradosz@gmail.com>

Co-authored-by: Jarek Radosz <jradosz@gmail.com>
2021-02-01 09:01:47 -05:00

104 lines
2.8 KiB
JavaScript

import componentTest, {
setupRenderingTest,
} from "discourse/tests/helpers/component-test";
import {
discourseModule,
exists,
queryAll,
} from "discourse/tests/helpers/qunit-helpers";
import { click } from "@ember/test-helpers";
import hbs from "htmlbars-inline-precompile";
discourseModule("Integration | Component | Widget | header", function (hooks) {
setupRenderingTest(hooks);
componentTest("rendering basics", {
template: hbs`{{mount-widget widget="header"}}`,
test(assert) {
assert.ok(queryAll("header.d-header").length);
assert.ok(queryAll("#site-logo").length);
},
});
componentTest("sign up / login buttons", {
template: hbs`
{{mount-widget
widget="header"
showCreateAccount=showCreateAccount
showLogin=showLogin
args=args
}}
`,
anonymous: true,
beforeEach() {
this.set("args", { canSignUp: true });
this.set("showCreateAccount", () => (this.signupShown = true));
this.set("showLogin", () => (this.loginShown = true));
},
async test(assert) {
assert.ok(queryAll("button.sign-up-button").length);
assert.ok(queryAll("button.login-button").length);
await click("button.sign-up-button");
assert.ok(this.signupShown);
await click("button.login-button");
assert.ok(this.loginShown);
},
});
componentTest("anon when login required", {
template: hbs`
{{mount-widget
widget="header"
showCreateAccount=showCreateAccount
showLogin=showLogin
args=args
}}
`,
anonymous: true,
beforeEach() {
this.set("args", { canSignUp: true });
this.set("showCreateAccount", () => (this.signupShown = true));
this.set("showLogin", () => (this.loginShown = true));
this.siteSettings.login_required = true;
},
test(assert) {
assert.ok(exists("button.login-button"));
assert.ok(exists("button.sign-up-button"));
assert.ok(!exists("#search-button"));
assert.ok(!exists("#toggle-hamburger-menu"));
},
});
componentTest("logged in when login required", {
template: hbs`
{{mount-widget
widget="header"
showCreateAccount=showCreateAccount
showLogin=showLogin
args=args
}}
`,
beforeEach() {
this.set("args", { canSignUp: true });
this.set("showCreateAccount", () => (this.signupShown = true));
this.set("showLogin", () => (this.loginShown = true));
this.siteSettings.login_required = true;
},
test(assert) {
assert.ok(!exists("button.login-button"));
assert.ok(!exists("button.sign-up-button"));
assert.ok(exists("#search-button"));
assert.ok(exists("#toggle-hamburger-menu"));
assert.ok(exists("#current-user"));
},
});
});