# 플러그인에서 모델 또는 구성 요소를 커스텀 플러그인으로 가져오기: 테스트 실패

**URL:** https://meta.discourse.org/t/importing-a-model-or-component-from-a-plugin-into-a-custom-plugin-tests-fail/383005
**Category:** Development
**Tags:** testing
**Created:** [9월 17, 2025, 4:55오후 UTC](https://meta.discourse.org/t/importing-a-model-or-component-from-a-plugin-into-a-custom-plugin-tests-fail/383005 "2025-09-17T16:55:32Z")
**Posts on this page:** 1
**Showing post:** 1

<div class="post-metadata">

### Author: ![Marine](https://avatars.discourse-cdn.com/v4/letter/m/45deac/32.png) [@Marine](https://meta.discourse.org/u/Marine)
#### Post date: [9월 17, 2025, 4:55오후 UTC](https://meta.discourse.org/t/importing-a-model-or-component-from-a-plugin-into-a-custom-plugin-tests-fail/383005/1 "2025-09-17T16:55:33Z")

</div>

안녕하세요,  
현재 Discourse 버전 3.5.0을 사용하고 있습니다.  
저희는 Discourse의 다양한 요소를 오버라이드하고 자체 기능을 추가하는 자체 플러그인을 보유하고 있습니다.

이 플러그인에서 특히 composer의 도구바에 이벤트 추가 아이콘을 추가하려고 합니다. 이를 위해 다음을 가져와야 합니다:

- `plugins/discourse-calendar/assets/javascripts/discourse/models/discourse-post-event-event.js`에 위치한 `DiscoursePostEventEvent` 모델

- `plugins/discourse-calendar/assets/javascripts/discourse/components/modal/post-event-builder.js`에 위치한 `PostEventBuilder` 컴포넌트

또한, 플러그인 내 `/test` 디렉토리에 기능을 위한 **통합 테스트** 를 작성했습니다.

```plaintext
import { visit } from "@ember/test-helpers";
import { test } from "qunit";
import { acceptance } from "discourse/tests/helpers/qunit-helpers";

acceptance("TOTO", function (needs) {
  test("coopaname integration - composer", async function (assert) {
    await visit("/");
    assert
      .equal(1, 1, "OK")
  });

});

```

원하는 동작은 구현할 수 있지만, 어떤 방식으로 import를 하든 테스트가 실패합니다.

### 파일 헤더에서 Import

파일 헤더에서 `import` 메서드를 사용하여 모델과 컴포넌트를 가져올 때:

```javascript
import DiscoursePostEventEvent from "discourse/plugins/discourse-calendar/discourse/models/discourse-post-event-event";
import PostEventBuilder from "discourse/plugins/discourse-calendar/discourse/components/modal/post-event-builder";

```

**실행** 시에는 문제가 없지만, 테스트를 실행하면 **테스트가 실행되지 않습니다**.

 ![image](https://global.discourse-cdn.com/meta/original/4X/2/0/f/20f973d492133d9143034a296af76940cc466d31.png)

 ![image](https://global.discourse-cdn.com/meta/original/4X/f/9/5/f95f1930c64657ef1ca54ab2c74f66e9f687deeb.png)

### 파일 헤더에서 Require

파일 헤더에서 `require` 메서드를 사용하여 모델과 컴포넌트를 가져올 때:

```javascript
const DiscoursePostEventEvent = require("discourse/plugins/discourse-calendar/discourse/models/discourse-post-event-event").default;
const PostEventBuilder = require("discourse/plugins/discourse-calendar/discourse/components/modal/post-event-builder".default;

```

**실행** 시에는 문제가 없지만, 테스트를 실행하면 **테스트가 실행되지 않습니다**.

 ![image](https://global.discourse-cdn.com/meta/original/4X/2/0/f/20f973d492133d9143034a296af76940cc466d31.png)

 ![image](https://global.discourse-cdn.com/meta/original/4X/a/a/3/aa3f731ee22f29d94e3ddb207042bbca6dce6b8b.png)

이는 `import`를 사용했을 때와 동일한 결과를 보입니다.

### 파일 본문에서 Require

함수 본문에서 `require` 메서드를 사용하여 모델과 컴포넌트를 가져올 때:

```javascript
import { withPluginApi } from "discourse/lib/plugin-api";

function initializeEventBuilder(api) {
  const DiscoursePostEventEvent =
     require("discourse/plugins/discourse-calendar/discourse/models/discourse-post-event-event").default;
  const PostEventBuilder =
     require("discourse/plugins/discourse-calendar/discourse/components/modal/post-event-builder").default;

  ... 나머지 코드
}

export default {
  name: "add-custom-create-event-button",
  initialize(container) {
    withPluginApi(initializeEventBuilder);
  },
};

```

**실행** 시에는 문제가 없지만, 테스트를 실행하면 **실패합니다**.

 ![image](https://global.discourse-cdn.com/meta/original/4X/9/0/5/905d9fde7d2a749cbc605fd2c032bf803465377f.png)

모델을 찾을 수 없다고 합니다.

요약하자면, **통합 테스트를 실행할 수 있도록** 다른 플러그인에서 모델, 컴포넌트 등을 올바르게 가져오는 방법에 대해 알고 싶습니다.  
감사합니다!

---

_[View the full topic](https://meta.discourse.org/t/importing-a-model-or-component-from-a-plugin-into-a-custom-plugin-tests-fail/383005)._
