import { visit } from "@ember/test-helpers"; import { test } from "qunit"; import { AUTO_GROUPS } from "discourse/lib/constants"; import groupFixtures from "discourse/tests/fixtures/group-fixtures"; import { acceptance, updateCurrentUser, } from "discourse/tests/helpers/qunit-helpers"; acceptance("AdSense", function (needs) { needs.user(); needs.settings({ no_ads_for_groups: "47", no_ads_for_categories: "1", adsense_publisher_code: "MYADSENSEID", adsense_display_groups: [ AUTO_GROUPS.trust_level_1, AUTO_GROUPS.trust_level_2, ], adsense_topic_list_top_code: "list_top_ad_unit", adsense_topic_list_top_ad_sizes: "728*90 - leaderboard", adsense_mobile_topic_list_top_code: "mobile_list_top_ad_unit", adsense_mobile_topic_list_top_ad_size: "300*250 - medium rectangle", adsense_post_bottom_code: "post_bottom_ad_unit", adsense_post_bottom_ad_sizes: "728*90 - leaderboard", adsense_mobile_post_bottom_code: "mobile_post_bottom_ad_unit", adsense_mobile_post_bottom_ad_size: "300*250 - medium rectangle", adsense_nth_post_code: 6, adsense_topic_above_post_stream_code: "above_post_stream_ad_unit", adsense_topic_above_post_stream_ad_sizes: "728*90 - leaderboard", }); needs.site({ house_creatives: { settings: { topic_list_top: "", topic_above_post_stream: "", topic_above_suggested: "", post_bottom: "", after_nth_post: 20, }, creatives: {}, }, }); test("correct number of ads should show", async (assert) => { updateCurrentUser({ staff: false, trust_level: 1, groups: [AUTO_GROUPS.trust_level_1], show_adsense_ads: true, show_to_groups: true, }); await visit("/t/280"); // 20 posts assert .dom(".google-adsense.adsense-topic-above-post-stream") .exists({ count: 1 }, "it should render 1 ad above post stream"); assert .dom(".google-adsense.adsense-post-bottom") .exists({ count: 3 }, "it should render 3 ads"); assert .dom("#post_6 + .widget-connector .google-adsense.adsense-post-bottom") .exists({ count: 1 }, "ad after 6th post"); assert .dom("#post_12 + .widget-connector .google-adsense.adsense-post-bottom") .exists({ count: 1 }, "ad after 12th post"); assert .dom("#post_18 + .widget-connector .google-adsense.adsense-post-bottom") .exists({ count: 1 }, "ad after 18th post"); }); test("no ads for trust level 3", async (assert) => { updateCurrentUser({ staff: false, trust_level: 3, groups: [AUTO_GROUPS.trust_level_3], }); await visit("/t/280"); assert .dom(".google-adsense.adsense-post-bottom") .doesNotExist("it should render 0 ads"); }); test("can omit ads based on groups", async (assert) => { updateCurrentUser({ staff: false, trust_level: 1, groups: [groupFixtures["/groups/discourse.json"].group], }); await visit("/t/280"); assert .dom(".google-adsense.adsense-post-bottom") .doesNotExist("it should render 0 ads"); }); test("can omit ads based on category", async (assert) => { updateCurrentUser({ staff: false, trust_level: 1 }); await visit("/t/28830"); assert .dom(".google-adsense.adsense-topic-above-post-stream") .doesNotExist("it should render 0 ads"); }); });