         tableView.delegate = self
     }
 
-    private func didSetViewModel() {
-        tableView.reloadData()
-        setEditing(false, animated: true)
-        editButtonItem.isEnabled = viewModel.isEditButtonEnabled
-    }
-
     @objc private func didTap(addBarButtonItem: UIBarButtonItem) {
         self.didTap?(addBarButtonItem)
     }
+    
+    #if DEBUG
+    private var debugDidTap: (() -> Void)?
+    
+    public func onDebugDidTap(perform action: @escaping (() -> Void)) {
+        debugDidTap = action
+    }
+    
+    @objc
+    private func didTap(debugBarButtonItem: UIBarButtonItem) {
+        debugDidTap?()
+    }
+    #endif
 }
 
 // MARK: - UITableViewDataSource


    public var viewModel: TableViewModel {
        didSet {
            didSetViewModel()
        }
    }

    private let tableView: UITableView

    private var debugDidTap: (() -> Void)?
    private var didTap: ((UIBarButtonItem) -> Void)?
    private var didSelectRow: ((IndexPath, UITableView) -> Void)?
    private var didCommitEditing: ((UITableViewCellEditingStyle, IndexPath, UITableView) -> Void)?
    private var didTapAccessoryButtonForRow: ((IndexPath, UITableView) -> Void)?

    // MARK: - Life Cycle

    public init(tableView: UITableView = .init(), viewModel: TableViewModel = .init()) {

        super.viewDidLoad()
        configureNavigationItems()
        configureTableView()
    }

    private lazy var searchController: UISearchController = {
